VBA erreur d'execution
espionne
-
Amnesic Messages postés 10 Statut Membre -
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
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:
- VBA erreur d'execution
- Erreur upes 1025 - Forum Téléviseurs
- Erreur d'execution 13 vba ✓ - Forum VB / VBA
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
1 réponse
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+
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