VBA erreur d'execution

Fermé
espionne - 4 août 2008 à 22:01
Amnesic Messages postés 10 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 14 août 2008 - 5 août 2008 à 18:32
Bonjour,j'ai réalisé une macro que voici:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellule As Range
Set cellule = Application.Intersect(Range("M5:AQ41"), Target)
If cellule Is Nothing Then Exit Sub
Select Case Target.Value
Case "JR"
Target.Interior.ColorIndex = 45
Case "CP"
Target.Interior.ColorIndex = 50
Case Empty
Target.Interior.ColorIndex = 0
Case "RTT"
Target.Interior.ColorIndex = 35
Case "MAL"
Target.Interior.ColorIndex = 6
Case "RECUP"
Target.Interior.ColorIndex = 4
Case "FOR"
Target.Interior.ColorIndex = 12
le probleme c'est que quand je veux incrémenter des cellules avec des valeurs contenues dans macro, ca affiche erreur d'execution 13, incompatibilité de type. Même si cela ne m'empeche pas d'incrémenter ( je ferme le message d'erreur), cela m'enerve. Quelqu'un a t'il la solution ? merci beaucoup par avance
A voir également:

1 réponse

Amnesic Messages postés 10 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 14 août 2008 1
5 août 2008 à 18:32
Salut,
quand tu incrémentes, la plage Target est composée de plusieurs cellules et donc sa propriété Value n'est pas reconnue. Tu peux modifier ta macro comme ça, pour traiter chaque cellule individuellement.
A+
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cellule As Range, LaCellule As Range
    Set Cellule = Application.Intersect(Range("M5:AQ41"), Target)
    If Cellule Is Nothing Then Exit Sub
    
    For Each LaCellule In Cellule
        With LaCellule
            Select Case .Value
                Case "JR": .Interior.ColorIndex = 45
                Case "CP": .Interior.ColorIndex = 50
                Case Empty: .Interior.ColorIndex = 0
                Case "RTT": .Interior.ColorIndex = 35
                Case "MAL": .Interior.ColorIndex = 6
                Case "RECUP": .Interior.ColorIndex = 4
                Case "FOR": .Interior.ColorIndex = 12
            End Select
        End With
    Next LaCellule
End Sub
1