VBA Excel : incompatibilité de type

Résolu
tbeghain -  
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voulais pouvoir affecter des couleurs à une cellule en fonction du contenu de la cellule.
En regardant sur Internet, j'ai eu un bout de code qui fonctionne très bien sauf lorsque je tente de copier ou de supprimer une ligne ou une colonne . le message est :
erreur d'exécution 13 ' Incompatibilité de type'

Le bout de code est le suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "Pas d'info" Then
Target.Interior.ColorIndex = 35
End If
If Target.Value = "En attente" Then
Target.Interior.ColorIndex = 34
End If
If Target.Value = "En cours" Then
Target.Interior.ColorIndex = 36
End If
If Target.Value = "Ne fonctionne pas" Then
Target.Interior.ColorIndex = 3
End If
If Target.Value = "Annulé" Then
Target.Interior.ColorIndex = 40
End If
If Target.Value = "Terminé" Then
Target.Interior.ColorIndex = 4
End If
End Sub

Est-ce qu'il manque quelque chose ?
Merci pour vos réponses
A voir également:

2 réponses

Gord21 Messages postés 918 Date d'inscription   Statut Membre Dernière intervention   289
 
Bonsoir,
Le problème vient du fait que lorsque tu supprime une ligne, tu as plusieurs cellules de sélectionnées d'où la difficulté de lire la valeur de la cellule. Tu peux vérifier qu'il n'y a qu'une cellule de sélectionnée avant d'effectuer tes opérations :
If Target.Count = 1 Then
If Target.Value = "Pas d'info" Then
...
End If
End If


@+
0
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,
Le problème est résolu, sur les conseils d'un autre internaute, j'ai modifié le code
de la façon suivante, et ça fonctionne très bien. merci en tout cas.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target Is Nothing And Target.Cells.Count = 1 Then
Select Case Target.Value
Case "Pas d'info"
Target.Interior.ColorIndex = 35
Case "En attente"
Target.Interior.ColorIndex = 34
Case "En cours"
Target.Interior.ColorIndex = 36
Case "Ne fonctionne pas"
Target.Interior.ColorIndex = 3
Case "Annulé"
Target.Interior.ColorIndex = 40
Case "Terminé"
Target.Interior.ColorIndex = 4
End Select
End If
End Sub
0