VBA Excel : incompatibilité de type
Résolu
tbeghain
-
tbeghain Messages postés 63 Statut Membre -
tbeghain Messages postés 63 Statut Membre -
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
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:
- VBA Excel : incompatibilité de type
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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 :
@+
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
@+
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
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