XL 2016 boucles for imbriquées

  • Initiateur de la discussion Initiateur de la discussion meamandine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

meamandine

Guest
Bonsoir, je suis débutante en VBA et je cherche une solution pour écrire plusieurs boucles for imbriquées (360 variables ) et ayant le même début et fin pour avoir toutes les combinaisons possibles de ces variables .
est- ce- que quelqu'un aurait une solution svp?
 
Dernière modification par un modérateur:
Il faudrait surtout nous dire quels calculs sont effectués avec ces valeurs pour aboutir aux résultats à optimiser.
Ou mieux: mettre les formules qui les calcule à partir de valeurs arbitraires et laisser le Solveur minimiser ce résultat.
 
Dernière édition:
Ce que je veux faire c'est avoir ces combinaisons dans une feuille, calculer le coût et le rendement pour chaque ligne à l'aide d'une formule excel et ensuite construire un graphe (rendement, coût) mais là je suis bloqué au début !!
 
Bonjour.
Une dernière proposition, et je me désabonne définitivement de cette discussion.
VB:
Option Explicit
Sub Test()
   ListeCombi ActiveSheet.[B2].Resize(2000, 4), NbVal:=11, _
      Pas:=200000, SMin:=300000, SMax:=1000000
   End Sub
Sub ListeCombi(ByVal RngCible As Range, ByVal NbVal As Long, ByVal Pas As Double, ByVal SMin As Double, ByVal SMax As Double)
   Dim T(), TC() As Double, L As Long, C As Long, N As Long, Q As Long, R As Long, S As Double, V As Double
   ReDim TC(2 To RngCible.Columns.Count), T(1 To RngCible.Rows.Count, 1 To RngCible.Columns.Count)
   N = -1
   Do: N = N + 1
      Q = N: S = 0
      For C = UBound(T, 2) To 2 Step -1
         R = Q Mod NbVal
         V = Pas * R
         TC(C) = V
         S = S + V
         Q = Q \ NbVal: Next C
      If S = 0 And N > 0 Then Exit Do
      If S >= SMin And S <= SMax Then
         L = L + 1: T(L, 1) = N
         For C = 2 To UBound(TC): T(L, C) = TC(C): Next C
         End If
      Loop Until L >= UBound(T, 1)
   RngCible.Value = T
   End Sub
Faites attention: Votre prochaine réponse pourrait même me conduire à vous ajouter aussitôt à ma liste d'ignorés 😡
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
263
Réponses
4
Affichages
293
Retour