VBA erreur d'execution

espionne -  
Amnesic Messages postés 10 Statut Membre -
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
Configuration: Windows 2003
Internet Explorer 6.0

1 réponse

  1. Amnesic Messages postés 10 Statut Membre 1
     
    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