Coloriage d'une ligne selon la valeur saisie

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

apt

XLDnaute Impliqué
Salut,

Dans une feuille j'ai deux tableaux.

A la saisi je veux :

- Colorier en jaune la ligne active A-E si la colonne C contient une valeur V ou v


- Colorier en orange la ligne active A-E si la colonne C contient une valeur R ou r


- Colorier en jaune la ligne active F-K si la colonne I contient une valeur V ou v


- Colorier en orange la ligne active F-K si la colonne I contient une valeur R ou r

Voila mon code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    If Intersect(Target, Range("C2:C" & 
Range("C65536").End(xlUp).Row)) Is Nothing Then 
        If Intersect(Target, Range("I3:I" & 
Range("I65536").End(xlUp).Row)) Is Nothing Then Exit Sub 
    End If 
    On Error GoTo Fin 


    'Premier tableau 
    If Target.Column = 3 And Target.Count = 1 Then 
        Select Case LCase(Target.Text) 
        Case Is = "v" 
            Range("A" & Target.Row & ":F" & 
Target.Row).Interior.ColorIndex = 19 
        Case Is = "r" 
            Range("A" & Target.Row & ":F" & 
Target.Row).Interior.ColorIndex = 44 
        Case Else 
            Range("A" & Target.Row & ":F" & 
Target.Row).Interior.ColorIndex = xlNone 
        End Select 
    End If 


    'Deuxieme tableau 
    If Target.Column = 9 And Target.Count = 1 Then 
        Select Case LCase(Target.Text) 
        Case Is = "v" 
            Range("G" & Target.Row & ":M" & 
Target.Row).Interior.ColorIndex = 19 
        Case Is = "r" 
            Range("G" & Target.Row & ":M" & 
Target.Row).Interior.ColorIndex = 44 
        Case Else 
            Range("G" & Target.Row & ":M" & 
Target.Row).Interior.ColorIndex = xlNone 
        End Select 
    End If 
    Application.EnableEvents = True 
Fin: 
End Sub

Mais :
- Il ne fonctionne que pour le premier tableau et non pas pour le
deuxieme
- Quand je saisi un autre texte dans la colonne C, la procedure
s'arretera, même si, aprés, je saisi "v" ou "r" dans Colonne C.

Ou est l'erreur ?

Merci.
 
Re : Coloriage d'une ligne selon la valeur saisie

bonjour apt

voila ce que j'aurais ecrit

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And UCase(Target.Value) = "V" Then
  Range("A" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = 19
End If
If Target.Column = 3 And UCase(Target.Value) = "R" Then
  Range("A" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = 44
End If
If Target.Column = 9 And UCase(Target.Value) = "V" Then
  Range("F" & Target.Row & ":K" & Target.Row).Interior.ColorIndex = 19
End If
If Target.Column = 9 And UCase(Target.Value) = "R" Then
  Range("F" & Target.Row & ":K" & Target.Row).Interior.ColorIndex = 44
End If
End Sub
 
Re : Coloriage d'une ligne selon la valeur saisie

bonjour

il est possible de supprimer les end if comme suit

Code:
[LEFT]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And UCase(Target.Value) = "V" Then Range("A" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = 19
If Target.Column = 3 And UCase(Target.Value) = "R" Then Range("A" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = 44
If Target.Column = 9 And UCase(Target.Value) = "V" Then Range("F" & Target.Row & ":K" & Target.Row).Interior.ColorIndex = 19
If Target.Column = 9 And UCase(Target.Value) = "R" Then Range("F" & Target.Row & ":K" & Target.Row).Interior.ColorIndex = 44
End Sub
 [/LEFT]

par contre je ne vois pas comment supprimer les If restant

Ayant remplacé un code de 35 lignes avec 3 If et non fonctionnel par un code de 12 lignes et 4 If fonctionnel , je ne m'attendais pas a cette réaction !!!!

Bonne journée
 
- 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
7
Affichages
311
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
504
Réponses
4
Affichages
520
Retour