Private Sub Worksheet_Change(ByVal Target As Range) 'se déclenche dès qu'une cellule est modifiée
If Not Intersect(Range("C6:F27"), Target) Is Nothing Then 'si la cellule modifiée (target) est dans la plage C6:F27
lig = Target.Row 'récupère le numéro de ligne de la cellule
ToColor = WorksheetFunction.Sum(Cells(lig, 2).Offset(0, 1).Resize(, 4)) <> 0 'on calcule la somme des colonnes C à F de la ligne, si cette somme<>0, on met la variable ToColor à vrai, sinon,faux
onglet = VBA.Trim(Split(Cells(lig, 2), Chr(10))(0)) 'on récupère le nom de l'onglet dans la colonne B de la ligne: on sépare le contenu pour récuperer la première partie (SANS le numéro), laquelle doit etre IDENTIQUE au nom de l'onglet
On Error Resume Next 'si l'onglet n'existe pas, par exemple
Worksheets(onglet).Tab.Color = IIf(ToColor, vbRed, xlNone) 'on met l'onglet en rouge OU sans couleur
End If
End Sub