VBA couleur cellule vide
Bonjour,
Je me permets de vous demander de l'aide, après avoir bien cherché comment améliorer mon planning je ne trouve plus de solution...
J'ai fait une mise en forme conditionnelle pour pouvoir identifier les weekends (en hachuré).
Je souhaitais mettre de la couleur dans chaque cellule en fonction de la nature de l'absence des agents : Ca pour les congés en vert, Rtt en jaune etc...
Le nombre de mise en formes conditionelles étant limitées, je me suis lancée, pour la première fois (et avec pas mal de difficulté) dans la VBA avec la formule suivante :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each cell In Range("C1:AG129")
Select Case cell.Value
Case Is = "Ca"
cell.Interior.ColorIndex = 50
Case Is = "Rtt"
cell.Interior.ColorIndex = 6
Case Is = "F"
cell.Interior.ColorIndex = 22
Case Is = "M"
cell.Interior.ColorIndex = 37
Case Is = "Jae"
cell.Interior.ColorIndex = 37
Case Is = "R"
cell.Interior.ColorIndex = 36
Case Is = "Att"
cell.Interior.ColorIndex = 36
Case Is = "TP"
cell.Interior.ColorIndex = 15
Case Is = "Fé"
cell.Interior.ColorIndex = 7
End Select
Next
End Sub
Tout semble fonctionner, mes cellules se colorient en fonction du texte mais voilà mon problème : lorsque je supprime le texte de la cellule, la couleur reste... je souhaite que la cellule, lorsqu'elle redevient vide, soit à nouveau en blanc. Je cherche je cherche mais ne comprends pas comment bidouiller ma vba pour cela.
Je mets mon planning en pièce jointe, d'avance un grand merci si vous pouvez m'éclairer !!
Bonjour
Comme je le disais encore ce matin évite les cellules fusionnées qui n'apporte que des soucis avec les codes VBA
Ta colonne B voit le nom et prénom repris sur deux lignes. Mets sur une seule et si tu veux de l'espace, agrandis ta ligne tout simplement
Ensuite remplace le code par celui ci-dessous
Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan pour tchoupys - 02/08/13
Dim dlg As Integer, i As Integer
dlg = Range("B" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("C8:C" & dlg)) Is Nothing Then
Select Case Target
Case Is = "Ca": i = 50
Case Is = "Rtt": i = 6
Case Is = "F": i = 22
Case Is = "M": i = 37
Case Is = "Jae": i = 37
Case Is = "R": i = 36
Case Is = "Att": i = 36
Case Is = "TP": i = 15
Case Is = "Fé": i = 7
Case Else: i = -4142
End Select
Target.Interior.ColorIndex = i
End If
End SubSi ok lors de ta réponse clique sur le V vert à coté du botuon EDITER pour cloture le fil
Amicalement
Les cellules sont fusionnées pour pouvoir être séparées en deux demi journées si l'absence ne concerne qu'une matinée ou une après midi. Je crois que je vais changer la forme du tableau pour ne plus avoir ces cellules fusionnées et utiliser ta méthode.
Un grand merci.