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

garrec

XLDnaute Occasionnel
Bonjour j'ai 2 tableaux et 2 code couleurs et 3 regles. J'ai expliqué les principes primaires dans la feuille excel ci jointe 😉

Je ne comprend pas pk ce code ne marche pas 🙂


Dans cette ligne

Code:
 'Dans le tableau 1
 If Range("H" & i) <> Range("O" & j) Then

j'ai imcompatibilité de type

Voila mon code entier:

Code:
b CommandButtonOption_Click()

 'On lance la recherche des paramètre présents dans un tableau mais pas dans l'autre
 For i = 4 To 50
 For j = 4 To 50
 'Dans le tableau 1
 If Range("H" & i) <> Range("O" & j) Then
 'On efface la couleur de la cellule
 Range("H" & i).Interior.ColorIndex = xlColorIndexNone
 'On colorie la cellule en rouge
 Range("H" & i).Interior.ColorIndex = 3
 End If
 'Dans le tableau 2
 If Range("H" & i) <> Range("O" & j) Then
 'On efface la couleur de la cellule
 Range("O" & j).Interior.ColorIndex = xlColorIndexNone
 'On colorie la cellule en rouge
 Range("O" & j).Interior.ColorIndex = 3
 End If
 Next j
 Next i
 'Pour les codes bloom égaux, on va rechercher les différences dans les colones suivantes
 For k = 4 To 50
 For l = 4 To 50
 p = Range("H" & k) = Range("O" & l) And Range("I" & k) <> Range("P" & l)
 Q = Range("H" & k) = Range("O" & l) And Range("J" & k) <> Range("Q" & l)
 R = Range("H" & k) = Range("O" & l) And Range("K" & k) <> Range("R" & l)
 S = Range("H" & k) = Range("O" & l) And Range("L" & k) <> Range("S" & l)
 'Si les codes bloom sont les mêmes mais qu'il y à des différence dans les colones suivante, on colore les cellules en orange
 If p Or Q Or R Or S Then
 Range("H" & k).Interior.ColorIndex = xlColorIndexNone
 Range("H" & k).Interior.ColorIndex = 45
 Range("O" & l).Interior.ColorIndex = xlColorIndexNone
 Range("O" & l).Interior.ColorIndex = 45
 End If
 'Dans chaque ligne ou on a colorer le code bloom en orange, on colorie les variations
 If p Then
 Range("I" & k).Interior.ColorIndex = xlColorIndexNone
 Range("I" & k).Interior.ColorIndex = 45
 Range("P" & l).Interior.ColorIndex = xlColorIndexNone
 Range("P" & l).Interior.ColorIndex = 45
 End If
 If Q Then
 Range("J" & k).Interior.ColorIndex = xlColorIndexNone
 Range("J" & k).Interior.ColorIndex = 45
 Range("Q" & l).Interior.ColorIndex = xlColorIndexNone
 Range("Q" & l).Interior.ColorIndex = 45
 End If
 If R Then
 Range("K" & k).Interior.ColorIndex = xlColorIndexNone
 Range("K" & k).Interior.ColorIndex = 45
 Range("R" & l).Interior.ColorIndex = xlColorIndexNone
 Range("R" & l).Interior.ColorIndex = 45
 End If
 If S Then
 Range("L" & k).Interior.ColorIndex = xlColorIndexNone
 Range("L" & k).Interior.ColorIndex = 45
 Range("S" & l).Interior.ColorIndex = xlColorIndexNone
 Range("S" & l).Interior.ColorIndex = 45
 End If
 Next l
 Next k
 For n = 4 To 50
 For m = 4 To 50
 T = Range("H" & n) = Range("O" & m) And Range("I" & n) = Range("P" & m) And Range("J" & n) = Range("Q" & m) And Range("K" & n) = Range("R" & m) And Range("L" & n) = Range("S" & m)
 'Dans le tableau 1
 If T Then
 'On efface la couleur de la plage de cellule
 Range("H" & n, "L" & n).Interior.ColorIndex = xlColorIndexNone
 End If
 'Dans le tableau 2
 If T Then
 'On efface la couleur de la plage de cellule
 Range("O" & m, "S" & m).Interior.ColorIndex = xlColorIndexNone
 End If
 Next m
 Next n
 Range("A1").Select
 
 For i = 4 To 50
 
 If Range("P" & i).Value = 0 And Range("Q" & i).Value = 0 And Range("R" & i).Value = 0 And Range("S" & i).Value = 0 Then
 
 Range("O" & i).Interior.ColorIndex = xlColorIndexNone
 
 
 
 End If
 
 Next
  
 For m = 4 To 50

If Range("H" & m).Value = "Total général" Then

Range("H" & m).Interior.ColorIndex = xlColorIndexNone
 
End If

Next

 
 For m = 4 To 50

If Range("H" & m).Value = "" Then

Range("H" & m).Interior.ColorIndex = xlColorIndexNone
 
End If

Next





 End Sub
 

Pièces jointes

Dernière édition:
Re : couleur tableau

Salut garrec et le forum
Je ne comprend pas pk ce code ne marche pas 🙂
Parce qu'elle n'a pas de jambe 😀
Pas envie de me faire suer à télécharger un fichier qui aura des difficulté à être converti correctement.

Mais pour faire simple, un code peut présent des mode de "défaut" : une rreur dans le code ou une erreur de raisonnement. J'ai un peu simplifier ta double-boucle en respectant celle-ci :
Code:
For i = 4 To 50
    For j = 4 To 50
        'Dans le tableau 1
        If Range("H" & i) <> Range("O" & j) Then Range("H" & i).Interior.ColorIndex = 3
        'Dans le tableau 2
        If Range("H" & i) <> Range("O" & j) Then Range("O" & j).Interior.ColorIndex = 3
    Next j
Next i
Il n'est pas vécessaire de remettre la cellule en automatique avant de la colorier :La colorier directement suffit.
On va dire que les cellules sont en automatiques (fond=xlColorIndexNone). Pour le raisonnement, on va considérer que H4=O4.
Le test Range("H4") <> Range("O4") est faux et donc, je ne colorie pas.
Mais on est dans une boucle, et on va faire évoluer m. Le test suivant est : Range("H4") <> Range("O5") qui est vrai, et la macro fait ce que je lui commande : colorier H4 et O5 en rouge. Quand j'arrive à la fin de la boucle j, je vais comparer H5 avec O4 => je vais donc colorier H4:H50 et O4:O50 en rouge.
On peut le faire plus simplement et rapidement en direct. 😎

Effectvement, je n'ai pas regardé le fichier,et tu y expliques surement ce que tu veux faire, mais j'en doute.

Personnellement, je ne suis suis télépathe et je ne fais que commencer la chiromancie.
On peut difficilement aider à corriger un problème d'algorithme avec un code faux : il faut avoir une idée de ce qu'est supposé faire véritablement le code, de manière explicite (l'implicite dépend de trop de paramètres pour être sûr qu'on ait les mêmes bases).

Rappel : Excel fait toujours ce qu'on lui demande de faire, et quelques (rares) fois ce qu'on veut qu'il fasse !

Et tu ne dis pas si tu es un débutant ou pas.
A+
 
Dernière édition:
- 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

Discussions similaires

Réponses
8
Affichages
242
Réponses
4
Affichages
395
Réponses
5
Affichages
528
Réponses
2
Affichages
311
Réponses
4
Affichages
590
Réponses
7
Affichages
310
Retour