Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Si je sais comment procéder pour colorier une ligne sur 2 d'un tableau via le format conditionnel, en revanche je bute pour colorier 1 "groupe" de cellules sur 2
Voir fichier joint.
Attention: sélectionner la plage de cellules concernée au préalable. On verra par la suite, avec plus d'infos comment repérer la plage sans la sélectionner.
Coller dans la fenêtre de code de la Feuil1:
VB:
Sub coul()
With Selection
For lig = 1 To .Rows.Count
If .Cells(lig, 1) & .Cells(lig, 2) <> .Cells(lig - 1, 1) & .Cells(lig - 1, 2) Then cpt = cpt + 1
If cpt Mod 2 = 1 Then .Cells(lig, 1).Resize(1, 3).Interior.ColorIndex = 6
Next lig
End With
End Sub
Sub Gourdin()
Dim i As Long, AColorer As Boolean
AColorer = True
With Worksheets("Feuil1") ' à adapter
For i = 3 To .Range("B" & Rows.Count).End(xlUp).Row
If AColorer = True Then .Cells(i, 2).Resize(1, 3).Interior.ColorIndex = 6
If Not (.Cells(i, 2) = .Cells(i + 1, 2) And .Cells(i, 3) = .Cells(i + 1, 3)) Then AColorer = Not AColorer
Next
End With
End Sub
Attention: sélectionner la plage de cellules concernée au préalable. On verra par la suite, avec plus d'infos comment repérer la plage sans la sélectionner.
Coller dans la fenêtre de code de la Feuil1:
VB:
Sub coul()
With Selection
For lig = 1 To .Rows.Count
If .Cells(lig, 1) & .Cells(lig, 2) <> .Cells(lig - 1, 1) & .Cells(lig - 1, 2) Then cpt = cpt + 1
If cpt Mod 2 = 1 Then .Cells(lig, 1).Resize(1, 3).Interior.ColorIndex = 6
Next lig
End With
End Sub
Sub Gourdin()
Dim i As Long, AColorer As Boolean
AColorer = True
With Worksheets("Feuil1") ' à adapter
For i = 3 To .Range("B" & Rows.Count).End(xlUp).Row
If AColorer = True Then .Cells(i, 2).Resize(1, 3).Interior.ColorIndex = 6
If Not (.Cells(i, 2) = .Cells(i + 1, 2) And .Cells(i, 3) = .Cells(i + 1, 3)) Then AColorer = Not AColorer
Next
End With
End Sub
Pourrais tu me dire comment modifier le code pour que la couleur jaune (commence au deuxième groupe (groupe des "tomate vertes" dans mon fichier) et pas au premier groupe ? Merci
Re-bonjour,
Salut Paf 🙂, R@chid 🙂 ... et chris 🙂 (qui passait par là),
Mes hommages à tous les autres,
C'est dans le début de ligne suivante que ça se passe (je te laisse chercher un instant 😉)
VB:
If cpt Mod 2 = 1
Ce qui suit met la couleur de remplissage transparente avant de ré-appliquer une couleur. Elle repère aussi la fin de plage (au départ de B3) sans qu'une sélection soit nécessaire.
VB:
Sub coul()
With [B3].Resize([B3].CurrentRegion.Rows.Count - 1, [B3].CurrentRegion.Columns.Count)
.Interior.ColorIndex = xlNone
For lig = 1 To .Rows.Count
If .Cells(lig, 1) & .Cells(lig, 2) <> .Cells(lig - 1, 1) & .Cells(lig - 1, 2) Then cpt = cpt + 1
If cpt Mod 2 = 0 Then .Cells(lig, 1).Resize(1, 3).Interior.ColorIndex = 6
Next lig
End With
End Sub
- 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