Quelle sont les nombres dans une plage leures sommes equale un nombre connue

iliess

XLDnaute Occasionnel
Bonjour
J’ai une plage A1 :A100 qui contienne des nombres
En C1 j’ai un nombre qui est le total de 6 valeurs ou mois de la plage A1 :A100
Comment faire une macro qui exécute les étapes suivantes :
- Colorer ou sélectionnée les cellules leurs somme égale la valeur en C1
- Afficher vers une autre plage E1 les cellules colorées ou sélectionnée
-Supprimer les cellules colorées ou sélectionnée dans la plage principale A1 :A100 et chercher une autre combinaison si possible et l’affiche à côté de la premier combinaison
J’ai reçu un code par Mr Hervé Silve ce code travail sur la somme de trois valeurs et moi je le modifier pour 6 valeurs ou moins mais le reste je ne sais pas comment faire
Aidez-moi svp
Code:
Sub ChercherTotal()
 
    Dim Tbl1() As Double
    Dim Tbl2() As Double
    Dim Tbl3() As Double
    Dim Tbl4() As Double
    Dim Tbl5() As Double
    Dim Tbl6() As Double
    Dim plage As Range
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim L As Long
    Dim M As Long
    Dim N As Long
    Dim Max As Long
    Dim OK As Boolean
    Dim Total As Double
 
    'plage en colonne A
    Set plage = Range([a1], Range("A" & Rows.Count).End(xlUp))
 
    'total cherché
    Total = Range("c1").Value
 
    'rempli le 1er tableau avec la plage
    '(plus rapide que de travailler après sur le range)
    For I = 1 To plage.Count
 
        ReDim Preserve Tbl1(1 To I)
        Tbl1(I) = plage(I)
 
    Next I
 
    'redimensionne les autres tableaux
    ReDim Tbl2(1 To UBound(Tbl1))
    ReDim Tbl3(1 To UBound(Tbl1))
    ReDim Tbl4(1 To UBound(Tbl1))
    ReDim Tbl5(1 To UBound(Tbl1))
    ReDim Tbl6(1 To UBound(Tbl1))
    'égalité pour les trois tableaux
    Tbl2 = Tbl1
    Tbl3 = Tbl1
    Tbl4 = Tbl1
    Tbl5 = Tbl1
    Tbl6 = Tbl1
    'dimension maximale pour les boucles
    Max = UBound(Tbl1)
 
    'moulinette...
    For I = 1 To Max
 
        For J = I + 1 To Max
 
            For K = J + 1 To Max
 
                For L = K + 1 To Max
 
                    For M = L + 1 To Max
 
                        For N = M + 1 To Max
                            'effectue la comparaison (total des 3 dimensions)
                            If Tbl1(I) + Tbl2(J) + Tbl3(K) + Tbl4(L) + Tbl5(M) + Tbl6(N) = Total Then
 
                            'colore en rouge les 3 cellules correspondantes
                            plage(I).Interior.ColorIndex = 4
                            plage(J).Interior.ColorIndex = 4
                            plage(K).Interior.ColorIndex = 4
                            plage(L).Interior.ColorIndex = 4
                            plage(M).Interior.ColorIndex = 4
                            plage(N).Interior.ColorIndex = 4
                            'afficher les plage vers une autre plage
                            Range("e1").Value = plage(I).Value
                            Range("e2").Value = plage(J).Value
                            Range("e3").Value = plage(K).Value
                            Range("e4").Value = plage(L).Value
                            Range("e5").Value = plage(M).Value
                            Range("e6").Value = plage(N).Value
                            'résultat OK, fin de procédure
                            OK = True
                            Exit Sub
                            End If
                        Next N
 
                    Next M
 
                Next L
 
            Next K
 
        Next J
 
    Next I
    'si pas trouvé
    If OK = False Then
 
        MsgBox "Aucune combinaison possible !"
 
    End If
 
End Sub
 

Pièces jointes

  • exemple.xlsm
    29 KB · Affichages: 52
  • exemple.xlsm
    29 KB · Affichages: 53
  • exemple.xlsm
    29 KB · Affichages: 52

Tibo

XLDnaute Barbatruc
Re : Quelle sont les nombres dans une plage leures sommes equale un nombre connue

Bonjour Mytå:),

Merci de ressortir ce fichier conçu en son temps par notre regretté ami Ti.

L'occasion de ne pas l'oublier en lui adressant nos pensées.

@+
 

Discussions similaires

Réponses
11
Affichages
304
Réponses
0
Affichages
157
Réponses
12
Affichages
253
Réponses
2
Affichages
272

Statistiques des forums

Discussions
312 331
Messages
2 087 353
Membres
103 528
dernier inscrit
hplus