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 Sub

Si 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.

Rechercher des sujets similaires à "vba couleur vide"