Bonjour a tous,
J'ai déjà été aidé sur le sujet par Banzai64, toutefois il me faut encore régler quelques soucis.
En effet dans ma macro je fais varier 10 variables dont la somme doit être égale à 1 et d'autre contraintes. Toutefois le nombre de variable peut être compris entre 2 et 10. Mais avec la syntaxe utilisé je ne vois pas comment limiter le nombre de variables.
Je vous joins le code et le fichier (userform3)
PasF = 0.1
PasG = 0.1
Application.ScreenUpdating = False
For f1 = 0 To 1 Step PasF
For f2 = 0 To 1 Step PasF
For f3 = 0 To 1 Step PasF
For f4 = 0 To 1 Step PasF
For f5 = 0 To 1 Step PasF
sommef = f1 + f2 + f3 + f4 + f5
If sommef >= 0.7 Then 'contrainte sur les farines qui doivent être présentes
For g1 = 0 To 0.3 Step PasG
For g2 = 0 To 0.3 Step PasG
For g3 = 0 To 0.3 Step PasG
For g4 = 0 To 0.3 Step PasG
For g5 = 0 To 0.3 Step PasG
Compteur = Compteur + 1
If Compteur Mod 1000000 = 0 Then
Application.ScreenUpdating = True
If MsgBox("On continue ?", vbQuestion + vbYesNo) <> vbYes Then Exit Sub
Application.ScreenUpdating = False
End If
sommeg = g1 + g2 + g3 + g4 + g5
If sommeg <= 0.3 Then
If sommef + sommeg = 1 Then
' programme
End If
End If
Next g5
Next g4
Next g3
Next g2
Next g1
End If
Next f5
Next f4
Next f3
Next f2
Next f1
En fait l'utilisateur peut sélectionner le nombre de farine et de grains dans l'user_form3.
Petit exemple :
> nombre de farine (nbflour dans le fichier) = 3 on s’arrête à f3 dans le code tout en respectant les conditions qui étaient imposés.
> nombre de grains (nbgrains dans le fichier) = 2 = on s'arrête à g2.
Je sèche un peu depuis hier. C'est peut être la syntaxe utilisée...
Merci.