Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Select Case Target.Value Case 1: Target.Interior.ColorIndex = 4 Case 2: Target.Interior.ColorIndex = 40 Case 3: Target.Interior.ColorIndex = 34 Case 4: Target.Interior.ColorIndex = 27 Case 5: Target.Interior.ColorIndex = 34 '# même que le Case 3 Case 6: Target.Interior.ColorIndex = 39 Case 7: Target.Interior.ColorIndex = 24 Case 8: Target.Interior.ColorIndex = 22 Case 9: Target.Interior.ColorIndex = 7 Case 10: Target.Interior.ColorIndex = 33 Case 11: Target.Interior.ColorIndex = 38 Case 12: Target.Interior.ColorIndex = 46 Case Else: '# si aucun des cas précédent '# couleur de fond en automatique Target.Interior.ColorIndex = xlNone End Select ElseIf Target.Column = 5 Then Select Case UCase$(Target.Text) Case "DEBIT": Target.Interior.Color = vbRed Case "VIREMENT": Target.Interior.Color = vbYellow Case "PAIEMENT": Target.Interior.Color = vbGreen Case "BANQUE": Target.Interior.Color = vbBlue Case "CREDIT": Target.Interior.Color = vbMagenta Case Else: '# Pour toute autre valeur Target.Interior.ColorIndex = xlNone '# Couleur par défaut du système End Select End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question'mettre en "case" la valeur de la cellule en minuscules
For Each Cel In Target 'pour chaque cellule de la plage modifiée Select Case LCase(Cel) 'mettre en "case" la valeur de la cellule en minuscules
If Not Target.Column = 2 Then Exit Sub 'Je ne vois pas pourquoi (pour unr meilleure compréension) il n'a pas fait: If Target.Column = 2 Then 'Son code.... end if
If Target.Column = 2 Then
Je voudrais obtenir la même chose sur la colonne 5 mais plus avec un chiffre mais avec un nom.
un nom egale une couleur
Private Sub Worksheet_Change(ByVal Target As Range) Dim R As Range For Each R in Target.Range If R.Column = 2 And IsNumeric(R.Value) Then If R.Value > 0 And R.Value <= 12 Then R.Interior.ColorIndex = Choose(R.Value, 4, 40, 34, 27, 34, 39, 24, 22, 7, 33, 38, 46) Else 'si aucun des cas précédent 'couleur de fond en automatique R.Interior.ColorIndex = xlNone End If Next R End Sub
ElseIf R.Column = 5 Then Select Case lcase$(R.Value) Case "rouge": R.Interior.Color = vbRed Case "bleu": R.Interior.Color = RGB(0, 0, 255) '# vbBlue existe, mais ca montre comment personnaliser la chose... Case else R.interior.ColorIndex = clNone End Select End If
Je voudrais obtenir la même chose sur la colonne 5 mais plus avec un chiffre mais avec un nom.
.... Case "1" Cel.Interior.ColorIndex = 4 ....
un nom egale une couleur
Case "11" Cel.Interior.ColorIndex = gris_clair
Case "3" Cel.Interior.ColorIndex = 34 '<<<<<<=========== dans le cas ou valeur saisie = 3 Case "4" Cel.Interior.ColorIndex = 27 Case "5" Cel.Interior.ColorIndex = 34 '<<<<<<<<<<<========= même couleur mais avec autre saisie