Macro pour colorier lignes selon 2 exceptions

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 !

SUNLIFE2009

XLDnaute Nouveau
Bonjour le forum.

Je me sens vraiment mauvais face à un problème que j'imagine banal.
Depuis 2 heures, je cherche à faire en sorte de colorier les lignes de mon tableau, selon 2 conditions.
Dans la colonne E :
- si on retrouve la valeur inscrite en cellule B2
- OU, si on retrouve la valeur intitulée SHNS ,
alors, on colorie toutes les lignes, sauf celles où ces 2 valeurs sont présentes.
En d'autres termes, tout ce qui n'est pas égal à la cellule B2 ou à l'intitulé SHNS, dans la colonne E, on ne colorie pas la ligne. Toutes les autres lignes sont par contre coloriées.
J'ai donc tapé le code ci-dessous, mais je tombe toujours sur le débogage.
Pouvez-vous m'aider à rectifier l'erreur dans ce bout de code.
Merci beaucoup pour votre aide.
Laurent.

Private Sub CommandButton2_Click()
For x = Range("E65536").End(xlUp).Row To 2 Step -1
If Left(Range("E" & x), 4) <> Range("B2").Value Or "SHNS" Then
Rows(x).EntireRow.Interior.ColorIndex = 8
End If
Next x
End Sub
 
Re : Macro pour colorier lignes selon 2 exceptions

Bonjour le forum.

Je me sens vraiment mauvais face à un problème que j'imagine banal.
Depuis 2 heures, je cherche à faire en sorte de colorier les lignes de mon tableau, selon 2 conditions.
Dans la colonne E :
- si on retrouve la valeur inscrite en cellule B2
- OU, si on retrouve la valeur intitulée SHNS ,
alors, on colorie toutes les lignes, sauf celles où ces 2 valeurs sont présentes.
En d'autres termes, tout ce qui n'est pas égal à la cellule B2 ou à l'intitulé SHNS, dans la colonne E, on ne colorie pas la ligne. Toutes les autres lignes sont par contre coloriées.
J'ai donc tapé le code ci-dessous, mais je tombe toujours sur le débogage.
Pouvez-vous m'aider à rectifier l'erreur dans ce bout de code.
Merci beaucoup pour votre aide.
Laurent.

Private Sub CommandButton2_Click()
For x = Range("E65536").End(xlUp).Row To 2 Step -1
If Left(Range("E" & x), 4) <> Range("B2").Value Or "SHNS" Then
Rows(x).EntireRow.Interior.ColorIndex = 8
End If
Next x
End Sub

Bonsoir SUNLIFE2009,

Rectifie ton code ainsi :

Code:
Private Sub CommandButton2_Click()
For x = Range("E65536").End(xlUp).Row To 2 Step -1
If Left(Range("E" & x), 4) <> Range("B2").Value Or [COLOR="Red"][B]Range("E" & x), 4) <> [/B][/COLOR]"SHNS" Then
Rows(x).EntireRow.Interior.ColorIndex = 8
End If
Next x
End Sub

Cordialement.
 
Re : Macro pour colorier lignes selon 2 exceptions

Salut,
merci pour ta réponse.
Malheureusement, j'ai un message "Erreur de compilation : Erreur de syntaxe" qui s'affiche. C est peut-être un problème de parenthèse ou autre chose, mais je n'arrive pas trouver de solution.
Verrais tu quelque chose à modifier, ce qui créerait l'erreur?
Merci encore.
 
Re : Macro pour colorier lignes selon 2 exceptions

Bonjour à tous
Comme ceci peut-être ?
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton2_Click()
   For x = Range("E65536").End(xlUp).Row To 2 Step -1
      If Left(Range("E" & x), 4) <> Range("B2").Value Or Left(Range("E" & x), 4) <> "SHNS" Then
         Rows(x).EntireRow.Interior.ColorIndex = 8
      End If
   Next x
End Sub[/B][/COLOR]
ROGER2327
#3192
 
Re : Macro pour colorier lignes selon 2 exceptions

Re,
je n'ai plus de message d'erreur, par contre, le résultat n'est pas celui attendu. Toutes les lignes sont coloriées. Je ne comprends plus rien.
Je vous joins le fichier, pour mieux voir ce qui se passe.
Merci pour votre aide.
 

Pièces jointes

Re : Macro pour colorier lignes selon 2 exceptions

Re,
je n'ai plus de message d'erreur, par contre, le résultat n'est pas celui attendu. Toutes les lignes sont coloriées. Je ne comprends plus rien.
Je vous joins le fichier, pour mieux voir ce qui se passe.
Merci pour votre aide.

Re

Remplaces le Or par End :

Code:
Private Sub CommandButton2_Click()
For x = Range("E65536").End(xlUp).Row To 5 Step -1
If Left(Range("E" & x), 4) <> Range("B2").Value [COLOR="Red"][B]And [/B][/COLOR]Left(Range("E" & x), 4) <> "SHNS" Then
Rows(x).EntireRow.Interior.ColorIndex = 8
End If
Next x
End Sub

Bonne nuit.

Cordialement.

PS : Bonsoir ROGER2327
 
Re : Macro pour colorier lignes selon 2 exceptions

Re...
(...) le résultat n'est pas celui attendu. (...)
Quel est le résultat attendu ?
Pour l'instant on colorie les lignes ne contenant pas la valeur de B2 ou le texte SHNS dans la colonne E. Cette condition étant réalisée pour toutes les lignes, il est normal que la procédure colorie toutes les lignes. Vous remarquerez qu'il en sera toujours ainsi, quoi qu'on trouve dans la colonne E. En fait, votre procédure équivaut à celle-ci :
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton2_Click()
    Range(Rows("2:2"), Rows("65536:65536").End(xlUp)).Interior.ColorIndex = 8
End Sub[/B][/COLOR]
ROGER2327
#3193
 
Dernière édition:
Re : Macro pour colorier lignes selon 2 exceptions

Suite...
S'il s'agit de colorier les lignes contenant la valeur de B2 ou le texte SHNS dans la colonne E :
Code:
[COLOR="DarkSlateGray"][B]Private Sub CommandButton2_Click()
   For x = Range("E65536").End(xlUp).Row To 5 Step -1
      If Left(Range("E" & x), 4) = Range("B2").Value Or Left(Range("E" & x), 4) = "SHNS" Then
         Rows(x).EntireRow.Interior.ColorIndex = 8
      End If
   Next x
End Sub[/B][/COLOR]

S'il s'agit de colorier les lignes ne contenant ni la valeur de B2 ni le texte SHNS dans la colonne E, la solution de Papou-net (bonsoir Papou-net...) doit convenir.​
ROGER2327
#3194
 
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
10
Affichages
639
Réponses
1
Affichages
452
Réponses
0
Affichages
436
Retour