Bonjour tout le monde,
Je vais vous expliquer plus en détail le problème afin de vous éviter des pertes de temps inutiles.
LE BUT
- Je cherche à quantifier de manière très précise pour éviter les gâchis.
- C'est la raison pour laquelle je n'ai pas souhaité travailler au m².
OBJECTIF
- Je cherche à calculer le nombre de rouleau de tapisserie nécessaire pour couvrir une surface spécifique à l'aide d'une fonction personnalisé au format VBA.
- Ici, il s'agira d'un trapèze (voir schéma ci-dessous)
-
- On s'attardera uniquement sur la partie numéro 1 (en rouge)
LA CONDITION PRINCIPALE
- La ré-utilisation obligatoire du restant de tapisserie précédemment découpé si et uniquement si la longueur restante permet de couvrir la hauteur entière du let suivant. etc...
LE PROBLÈME RENCONTRÉ
- Les résultats donnés par la fonction sont erronées. La fonction ne semble pas reprendre les restes de tapisserie en suivant ma condition ci-dessus.
LE CODE
Function QRT(Longueur_de_Tapisserie As Double, Coefficient_directeur As Double, Largeur_Rouleau As Double, Nombre_de_Largeur As Single) As Single
Dim k As Double, Nb_Rouleau As Single, r As Single
Nb_Rouleau = 0
k = Longueur_de_Tapisserie
For r = 0 To Nombre_de_Largeur
Do While k >= 0
k = k - (Coefficient_directeur * Largeur_Rouleau * (r + 1) * 1.1)
Loop
If k < 0 Then
Nb_Rouleau = Nb_Rouleau + 1
k = Longueur_de_Tapisserie
End If
Next r
QRT = Nb_Rouleau
End Function
LES VARIABLES
"Coefficient directeur" = Il s'agit d'une coeff. dir. de l'hypothénuse du triangle.
"Nombre de largeur" = il s'agit du nombre de largeur de rouleau comprise entre le début et la fin de la partie 1. Ce chiffre à bien évidemment été arrondi à l'inférieure car la partie suivante est une constante.
Voilà voilà.
Je vous remercie par avance et j'ai hâte de voir vos propositions. Le problème est tout bête je suppose.