Coloriser des lignes suivant un critère
Résolu
mijean94
Messages postés
415
Date d'inscription
Statut
Membre
Dernière intervention
-
mijean94 Messages postés 415 Date d'inscription Statut Membre Dernière intervention -
mijean94 Messages postés 415 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Ce que j'aimerais réaliser en vba :
J’ai un tableau avec des données sur x lignes (dans l’exemple 1 à 4 ).
Je souhaite coloriser chaque ligne une fois en blanc l’autre fois en grisé en fonction du critère de la colonne E si celle-ci change de valeur, uniquement les colonnes A à E par exemple.
A B C D E
1 Rouge vert bleu noire violer
2 Violet rose gris violet rouge
3 vert marron jaune rouge rouge
4 gris jaune noir rose vert
Pour le tableau ci-dessous le résultat serait :
Ligne 1 : blanc
Ligne 2 : grisée
Ligne 3 : grisée
Ligne 4 : blanc
Et ainsi de suite …
Merci par avance de votre aide.
Bien cordialement
Ce que j'aimerais réaliser en vba :
J’ai un tableau avec des données sur x lignes (dans l’exemple 1 à 4 ).
Je souhaite coloriser chaque ligne une fois en blanc l’autre fois en grisé en fonction du critère de la colonne E si celle-ci change de valeur, uniquement les colonnes A à E par exemple.
A B C D E
1 Rouge vert bleu noire violer
2 Violet rose gris violet rouge
3 vert marron jaune rouge rouge
4 gris jaune noir rose vert
Pour le tableau ci-dessous le résultat serait :
Ligne 1 : blanc
Ligne 2 : grisée
Ligne 3 : grisée
Ligne 4 : blanc
Et ainsi de suite …
Merci par avance de votre aide.
Bien cordialement
A voir également:
- Coloriser des lignes suivant un critère
- Suivi des modifications word - Guide
- Partager des photos en ligne - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Comment supprimer des lignes dans un tableau word - Guide
4 réponses
Bonjour
A adapter :
Cdlmnt
Via
A adapter :
Public col As Integer Sub colorer() col = 2 maxligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'dernière ligne remplie For n = 2 To maxligne If Range("E" & n) <> Range("E" & n - 1) Then If col = 2 Then col = 15 Else col = 2 '2 est code couleur excel pour blanc et 15 pour gris End If Range("A" & n & ":E" & n).Interior.ColorIndex = col Next End Sub
Cdlmnt
Via
Bonjour,
Merci pour cette réponse.
dans mon la colorisation n'est jamais la même fonction du critère de la colonne E
il faut par exemple 8 lignes blanches, 1 ligne gris, puis 4 lignes blanches, et 2 lignes grises cela change. de plus mon programme est protégé en VBA après un traitement de mise en forme lignes et colonnes, mais je ne trouve pas la solution pour ajouter la colorisation en vba, le pourquoi de ma question.
Bien cordialement
Merci pour cette réponse.
dans mon la colorisation n'est jamais la même fonction du critère de la colonne E
il faut par exemple 8 lignes blanches, 1 ligne gris, puis 4 lignes blanches, et 2 lignes grises cela change. de plus mon programme est protégé en VBA après un traitement de mise en forme lignes et colonnes, mais je ne trouve pas la solution pour ajouter la colorisation en vba, le pourquoi de ma question.
Bien cordialement
Voir ceci:
https://www.excel-pratique.com/fr/vba/couleurs
https://www.excel-pratique.com/fr/vba/liste-couleurs-rgb
A adapter:
Voilà
https://www.excel-pratique.com/fr/vba/couleurs
https://www.excel-pratique.com/fr/vba/liste-couleurs-rgb
A adapter:
Sub couleur() Dim j As Long For j = 1 To Range("A65000").End(xlUp).Row 'boucle colonne A If Cells(j, 5).Value = "rouge" Then 'colonne E 'Rows(j & ":" & j).Interior.Color = RGB(224, 224, 255) 'a adapter Rows(j & ":" & j).Interior.Color = 14540253 'a adapter End If Next j End Sub
Voilà
Merci pour cette réponse,
j'ai l'impression que je n'ai pas bien expliqué mon problème ou je ne comprend pas bien le code.
le changement de couleur dépend du changement de désignation dans la colonne E , ( il est limité à x colonnes) mais ça peut-être n'importe quoi dans la cellule E, une date un nom qui ce suit au minimum deux ou x fois donc les lignes restent de la même couleur, grisées ou blanc suivant celle d'avant.
et la procédure s'arrête lorsque la case en E est vide.
bien cordialement
j'ai l'impression que je n'ai pas bien expliqué mon problème ou je ne comprend pas bien le code.
le changement de couleur dépend du changement de désignation dans la colonne E , ( il est limité à x colonnes) mais ça peut-être n'importe quoi dans la cellule E, une date un nom qui ce suit au minimum deux ou x fois donc les lignes restent de la même couleur, grisées ou blanc suivant celle d'avant.
et la procédure s'arrête lorsque la case en E est vide.
bien cordialement
Salutations à tous,
Si j'ai bien compris, inutile pour le blanc si le fond est déjà blanc
Pour le gris 2 MFC ; une qui concerne uniquement la ligne 1 et une autre pour les autres lignes
ligne 1
autres lignes
https://www.cjoint.com/c/KHlkkhtpR7S
Cordialement
Si j'ai bien compris, inutile pour le blanc si le fond est déjà blanc
Pour le gris 2 MFC ; une qui concerne uniquement la ligne 1 et une autre pour les autres lignes
ligne 1
=ET($E1<>"";$E1=$E2)
autres lignes
=ET($E2<>"";OU($E2=$E3;NB.SI($E1:$E2;$E2)=2))
https://www.cjoint.com/c/KHlkkhtpR7S
Cordialement
bien cordialement
lorsque je lance la procédure elle bloque sur maxligne : variable non définie ?
merci de l'aide
bien cordialement