Programmation avec un nombre de variables pouvant changer

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.

9program.xlsm (84.46 Ko)

J'ai bien pensé à un chose qui me parait complètement stupide c'est de faire des grandes boucles if avec tous les cas possible mais il doit y avoir quelque chose de mieux à faire.

C'est à dire environ une vingtaine de cas si je suis encore bon en proba....

Merci

Bonsoir

Une autre vision de la chose

Merci beaucoup à toi, je regarde ça tout de suite mais je suis sur que cela sera parfait!

Et désolé pour les demandes à répétitions mais je suis en école d'agro et mon stage est purement informatique donc je misère un peu!


Je m'excuse encore plus platement car j'avais l'idée du tableau, mais je n'ai pas pensé à l'adapter comme cela.

Un grand merci!!!

Bonjour

Tu n'as pas à t'excuser parce que tu ne l'as pas fait

Si personne n'avait de soucis (Excel) , que ferai je ?

Rechercher des sujets similaires à "programmation nombre variables pouvant changer"