Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Modifier code Somme de sous ensemble

  • Initiateur de la discussion Initiateur de la discussion kenzo1245
  • 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 !

K

kenzo1245

Guest
Bonjour,

J'ai le programme de TI qui trouve toutes les combinaisons parmi une liste de nombre pour arrivé à la somme voulu.

exemple:
Liste = (14,9,8,7,6,5) - somme à trouver = 22

Résultat 1 : 14 - 8
Résultat 2 : 9 - 8 - 5
Résultat 3 : 9 - 6 - 6

J'aimerais pouvoir le modifier pour qu'il s’arrête au 1er résultat si c'est possible.
Votre aide est la bienvenue. Merci d'avance.
 

Pièces jointes

Re : Modifier code Somme de sous ensemble

Bonjour Kenzo,
Code:
Sub ChercheSomme()
Dim Tableau() As Double, Plage As Range, Cel As Range
Dim Boucle As Integer, NbSol As Long, K As Integer
Dim TabCombin, Boucle2 As Integer, Montant As Double
Dim NbVal As Integer, Mini As Integer, Maxi As Integer

  With Application
    .Calculation = xlCalculationManual
    .ScreenUpdating = False

    With F4
      Set Plage = .Range("BaseDep", .Range("BaseDep").End(xlDown))
      Set Cel = .Range("Sol1")
      Range(Cel, Cel.End(xlDown)).Resize(, 200).ClearContents
      Montant = .Range("Montant")
      DetermineMinMax .Range("NbValeurs"), Mini, Maxi, Plage.Rows.Count
    End With

    ReDim Tableau(1 To Plage.Rows.Count)
    For Boucle = 1 To Plage.Rows.Count
      Tableau(Boucle) = Plage.Cells(Boucle, 1)
    Next Boucle

    For K = Mini To Maxi
      DoEvents
      TabCombin = SommeKSurN(Tableau, K, Montant)
      If IsArray(TabCombin) Then
        For Boucle = LBound(TabCombin, 2) To UBound(TabCombin, 2)
          NbSol = NbSol + 1
          Cel = NbSol
          For Boucle2 = 1 To K
            Cel.Offset(0, Boucle2) = TabCombin(Boucle2, Boucle)
          Next Boucle2
          Set Cel = Cel.Offset(1, 0)
          Exit Sub
        Next Boucle
      End If
    Next K
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
  End With
End Sub

Voir ajout de " Exit Sub " à la 8 ème ligne en partant du bas

à+
Philippe
 
- 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
2
Affichages
1 K
L
Réponses
9
Affichages
1 K
Réponses
12
Affichages
1 K
M
Réponses
1
Affichages
1 K
mahaut57
M
S
Réponses
6
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…