Dépassement de capacité

Résolu
boboros -  
 boboros -
Bonjour,

J'ai réalisé un programme pour colorier les cellules dans Excel en fonction du mot que je mets dans une colonne.
Malheureusement, après la ligne 250 cela ne marche plus et on me met qu'il y a un problème de capacité.

Merci d'avance de m'apporter une solution.

Je vous joins mon code ci-dessous:

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

If Intersect(Target, Range("AA1:AA5000")) Is Nothing Then: Exit Sub

lig = Target.Row
Set plage = Range(Cells(lig, 1), Cells(lig, 24))

Select Case Target
Case Is = "A"
plage.Interior.ColorIndex = 48 'Gris pour "A"'
Case Is = "B"
plage.Interior.ColorIndex = 2 'Blanc pour "B"'
Case Is = "C"
plage.Interior.ColorIndex = 10 'Vert pour "C"'
Case Is = "D"
plage.Interior.ColorIndex = 10 'Vert pour "D"'
Case Is = "E"
plage.Interior.ColorIndex = 33 'Bleu pour "E"'
Case Is = "F"
plage.Interior.ColorIndex = 45 'Orange pour "F"'
Case Is = "G"
plage.Interior.ColorIndex = 3 'Rouge pour "G"'
Case Is = "H"
plage.Interior.ColorIndex = 3 'Rouge pour "H"'
Case Is = "I"
plage.Interior.ColorIndex = 10 'Vert pour "I"'
Case Else
plage.Interior.ColorIndex = -4142 'Enlève la couleur'

End Select

Set plage = Nothing
End Sub

########################################################

Encore merci.
A voir également:

1 réponse

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

ça doit être après la ligne 256 (2^8...)
Tu as défini lig comme étant un octet. Ainsi, il ne peut pas dépasser 255.

Mets-le en Integer, en Variant ou en Double, ou alors ne lui affecte pas de type.

PS : je trouve un peu curieux d'utiliser Worksheet_Change pour ça

A+
1
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Jusqu'à Excel 2003 tu peux utiliser:
Dim lig As Integer, plage As Range

A partir d'Excel 2007 il vaut mieux utiliser :
Dim lig As Long, plage As Range
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Patrice,

J'ajouterai qu'avec les capacités des ordinateurs actuels, la différence entre Integer et Long étant quasi incommensurable, il convient de toujours utiliser Long.
En effet, même sur 2003, on peux dépasser les 32000 lignes et des...
Il faut aussi penser à la portabilité de vos applications, excel 2003 ayant déjà 10 ans.

Bonne journée
0
boboros
 
Merci beaucoup à tous pour vos remarques.
Mon programme marche comme je veux maintenant :)
Encore Merci
0