Macro pour colorier lignes selon 2 exceptions

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
 

Papou-net

XLDnaute Barbatruc
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.
 

SUNLIFE2009

XLDnaute Nouveau
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.
 

ROGER2327

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

SUNLIFE2009

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

  • EDIed.zip
    31.5 KB · Affichages: 33

Papou-net

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

ROGER2327

XLDnaute Barbatruc
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:

ROGER2327

XLDnaute Barbatruc
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:

bcharef

XLDnaute Accro
Re : Macro pour colorier lignes selon 2 exceptions

Bonjour SUNLIFE2009, Papou-net & ROGER2327,
Bonjour à toutes et à tous.

Si, j'ai bien compris.

Un essai avec une MeFC.

A vous lire et bon courage.

Cordialement.

BCharef
 

Pièces jointes

  • MeFCSunlife.xls
    27.5 KB · Affichages: 65

Discussions similaires

Réponses
2
Affichages
291
Réponses
1
Affichages
369

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson