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
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