VBA Erreur 13 quand tu me tiens...

Fermé
debutantVBA Messages postés 2 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 7 juin 2010 - 7 juin 2010 à 21:11
gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 7 juin 2010 à 22:45
Bonjour,

Je vais finalement vous exposer mon propre problème car après avoir parcouru tous les forum d'aide, je n'ai pas trouvé de réponse à mon problème.
Voici le code ci-dessous qui me donne du fil à retordre :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lig As Byte, plage As Range

If Intersect(Target, Range("T9:T5000")) Is Nothing Then: Exit Sub

Lig = Target.Row
Set plage = Range(Cells(Lig, 1), Cells(Lig, 21))

Select Case Target
Case Is = "PIECES DEMANDEES"
plage.Interior.ColorIndex = 7
Case Is = "A TRAITER"
plage.Interior.ColorIndex = 41
Case Is = "REAL EN COURS"
plage.Interior.ColorIndex = 6
Case Is = "INJECTEE"
plage.Interior.ColorIndex = 8
Case Is = "SOLDE"
plage.Interior.ColorIndex = 16
Case Is = "ENVOYE A PARIS"
plage.Interior.ColorIndex = 3
Case Is = "EFT PAYEE"
plage.Interior.ColorIndex = 4

End Select

Set plage = Nothing
End Sub

Ce code me permet de colorier les lignes de mon tableau suivant les données qui sont dans la colonne T. Le problème, c'est que lorsque je veux supprimer une ligne de mon tableau, j'ai un message d'erreur CODE 13 qui s'affiche et je ne trouve pas de solution (je suis débutant).

Je fais donc appel à votre aide "les PRO-grammeurs".
Merci d'avance A+

1 réponse

gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 657
7 juin 2010 à 22:45
bonjour

Tout d'abord, changes :

Dim Lig As Byte
par
Dim Lig As Long

car avec Byte tu ne peux pas dépasser 256 lignes.

Ensuite si tu supprimes une ligne, tu n'as rien à colorer et donc tu mets ceci en début :

If Target.Count > 1 Then Exit Sub


Tu sortiras de ta macro si plus d'une cellule est concernée car dans ce cas tu ne peux pas tester ta valeur ce qui provoque ton erreur.
0