VBA : erreur d'éxécution 6 : dépassement de capacité

luciol8 Messages postés 10 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 6 juin 2011 - 21 nov. 2010 à 15:40
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 21 nov. 2010 à 17:52
Bonjour à tous,
Voici mon code qui permet de masquer ou afficher telle ou telle ligne en fonction de la taille d'une chaine de caractère contenue dans une cellule (en l’occurrence des comptes analytiques pour ceux à qui cela parle). Mais voilà, je rencontre un problème, le code marche mais j'ai un message d'erreur : "erreur d'éxécution 6 : dépassement de capacité"

Merci du temps que vous allez m'accorder :)
Pour moi il s'agit d'une erreur sur les lignes i = i + 1 mais je ne vois pas comment la résoudre.

Pour info, voici le code :

Private Sub BTN_HideUnhide_Click()
Dim i As Integer

i = 7
If BTN_HideUnhide.Value = True Then
While ActiveSheet.Cells(i, 2) <> "<Fin>"
If Len(ActiveSheet.Cells(i, 2)) = 8 Then
Rows(i).Hidden = True
End If
i = i + 1
Wend
BTN_HideUnhide.Caption = "Détail"

Else
While ActiveSheet.Cells(i, 2) <> "<Fin>"
If Len(ActiveSheet.Cells(i, 2)) = 8 Then
Rows(i).Hidden = False
End If
i = i + 1
Wend
BTN_HideUnhide.Caption = "Synthèse"
End If
End Sub

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 nov. 2010 à 17:39
Bonjour,

A la place de
Dim i As Integer
Essayes
Dim i As Long

Ensuite, i tu ne rencontre jamais "<Fin>", où va ton programme ?

0
luciol8 Messages postés 10 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 6 juin 2011 1
21 nov. 2010 à 17:44
J'ai essayé Dim i as Long... sans succès...

Pour répondre à ta question je rencontre forcément "<Fin>" car je le rentre à la main (Effectivement si jamais je ne le rentrais pas je ne sortirai jamais de ma boucle).

Je ne comprend pas tellement pourquoi mes lignes se masquent ou s'affichent et ensuite j'ai l'impression que ma macro continue de tourner jusqu'à temps que le message d'erreur s'affiche en calculant i = i + 1...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 nov. 2010 à 17:52
Bonjour,

Essaye en mode Pas à pas et utilises les point d'arrêt

Ensuite, évite d'utiliser While/Wend, préfère Do/Loop qui est plus appréciée et souple.

0
Rejoignez-nous