C'est donc du VBA ?
Tout à fait !
Je pige ce qu'il faut modifier au niveau du contenu (occupant 1, 2, 3..), j'imagine que je peux rajouter autant de ligne que j'aurai de condition ?
Oui, car le numéro de la dernière ligne renseignée dans la colonne E est systématiquement vérifié.
Pour lire les données (occupant), c'est " Range("E4:E" & DerLig) " ? je ne comprend pas trop comment indiquer de où à où il faut lire la donnée, et de où à où il faut appliquer la couleur.
Range("E4:E" & DerLig) correspond à la plage qui est prise en compte pour le traitement, à savoir la partie renseignée de la colonne des occupants.
Pour t'aider, voici le code commenté :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
'Si plusieurs cellules ont été modifiées, on sort de la procédure
If Target.Count > 1 Then Exit Sub
'Dernière ligne renseignée dans la colonne E
DerLig = Range("E" & Rows.Count).End(xlUp).Row
'Si la cellule modifiée est dans la plage renseignée de la colonne E
If Not Application.Intersect(Range("E4:E" & DerLig), Target) Is Nothing Then
'On modifie la cellule correspondante en colonne A (décalée de -4 colonnes par rapport à la colonne E)
With Target.Offset(, -4)
'Alignements
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
'Format de cellule standard
.NumberFormat = "General"
'Police
With .Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 6
End With
'Traitement selon l'identifiant de l'occupant
Select Case Target.Value
'choix de la couleur de police et du remplissage
Case "occupant 1"
.Font.ThemeColor = xlThemeColorDark1
.Interior.Color = 255
Case "occupant 2"
.Font.ColorIndex = xlAutomatic
.Interior.Color = 16751052
Case "occupant 3"
.Font.ThemeColor = xlThemeColorDark1
.Interior.Color = 16711680
Case Else
.Interior.Pattern = xlNone
End Select
End With
End If
End Sub
Pour répondre à M12, ce type de procédure ne peut pas être écrite directement avec l'enregistreur de macro. Par contre, on peut s'aider de l'enregistreur pour certaines parties du code (celles qui concernent le format des cellules par exemple).
A+