Gestionaire d'erreur inefficace

Résolu
cs_marco62118 Messages postés 176 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 1 avril 2013 - 19 août 2007 à 02:03
cs_marco62118 Messages postés 176 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 1 avril 2013 - 20 août 2007 à 19:12
bonjour
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
 
OnErrorGoTo motap_V2
....
For m = 1To UBound(tab_mot)OnErrorGoTo0
 
....
motap_v2:
end
 

<!-- END TEMPLATE: bbcode_code -->une fonction recherche des mots dans un dico, et redimensionne le tableau "tab_Mot" à chaque fois qu'un mot est trouvé, donc si aucun mot n'est trouvé le tableau dynamique n'est pas dimensionné.
lorsque je veut regarder le contenu de ce tableau dans une autre procédure quand ce tableau est vide VB me renvois un message d'erreur N°9 "indice en dehors de la plage"!
Je ne comprends pourquoi le gestionnaire ne gère pas cette erreur , pourquoi il ne renvoit pas le programme à l'étiquette motap_v2.
si je n'ai pas fait d'erreur dans la gestion d'erreur comment faire pour savoir que ce tableau n'est pas dimmensionné?

merci d'avance

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 août 2007 à 05:26
Salut
Vérifie dans les options de l'IDE de VB6 :
Menu Outils, Options, onglet Général : "Arrêt sur les erreurs non gérées"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
19 août 2007 à 02:22
Salut,

remplace 1 par LBound(tab_mot)

Sinon, ton End est innaproprié (arrêt brutale de ton appli), si tu n'as qu'une Form de lancée, un simple Unload Me devrait convenir

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
0
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
19 août 2007 à 02:44
Met le On Error Goto ... en commentair et voit si ton programme plante bien. S'il ne plante pas sur le For, c'est que ton tableau est bien dimensionné a ce moment la.
Et voir effectivement comme le dis mortalino si le lbound() et le ubound() ne serait pas à 0. Auquel cas, pas d'erreur, et le for sort sans faire un seul tour, mais un tab_mot(1) va planter grave !
0
tiblay Messages postés 60 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 6 janvier 2009
20 août 2007 à 03:02
Tu dois declarer ta variable comme suit:

Private tab_mot() as variant 'Variant parce que je ne sais pas quelle type pour toi

Et ensuite tu la Redim avec un index a 0 comme suit

Redim tab_mot(0)

Et la ton UBound(tab_mot) te retournera 0

Bye

TiBlay
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marco62118 Messages postés 176 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 1 avril 2013 1
20 août 2007 à 19:12
bonsoir à tous
merci Jack c'était bien une case mal cochée
l'erreur 9 est bien générée lorsque le tableau dynamique est appelé sans avoir été dimensionné au préalable.
encore merci
0
Rejoignez-nous