Le code est à placer dans la feuille (click-droit sur l'onglet voulu puis "Visualiser le code")
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Range
Set x = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each x In x
If x = "contractuel ORG" Then
x.Interior.ColorIndex = 3
Else
x.Interior.ColorIndex = xlNone
End If
Next x
End Sub
Dans ce cas, se positionner sur A2, clic sur le pinceau de la boîte à outils Standard et de B2 jusque la colonne souhaitée et vers le bas, tirer avec le clic gauche enfoncé.
Plus court VBA maisc'estjustepourlefun Car une MFEC est de loin la meilleur Solution
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
For Each C In Range("Tab") [COLOR=Green]'Insertion/Noms/Définir =DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)[/COLOR]
C.Interior.ColorIndex = IIf(C.Value = "contractuel ORG", 3, XlNone)
Next C
End Sub
la macro de "Dull" réclame un nom "TAB", si tu lis le code tu verras qu'il faut la nommer dans ton fichier:
'Insertion/Noms/Définir "Tab" =DECALER(Feuil1!$A$1:$CJ$1;;;NBVAL(Feuil1!$A:$A)-1)
Par contre, je ne pense pas que la macro te colorie les lignes, encore une fois il est beaucoup plus simple de passer par une MFC si tu n'as pas plus de 3 conditions.
Private Sub Worksheet_Change(ByVal Target As Range)
For Each C In Range("Tab")
If C.Offset(0, 1) <> "" Then
Range(C.Offset(0, 2), C.Offset(0, 2).End(xlToRight)).Font.ColorIndex = IIf(C.Value = "contractuel ORG", 3, 0)
End If
Next C
End Sub
En ColA, si A1 = Contractuel ORG, les cellules de Droites jusqu'a Col CJ doivent être rouges
Si en Col A, A1 = Contractuel, les cellules de droites jusqu'a Col CJ doivent être Bleues SI en ColB il y a quelque chose
Sinon Couleur Normal
Est-ce Bien cela ? Sinon remet ton fichier avec les différents cas de figures