[Déplacé VB6 --> VBA] VB6 Gestion d'erreur Créer un Boucle ?

Résolu
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 22 mars 2010 à 19:47
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 23 mars 2010 à 10:15
Bonjour

Je code un programme où une erreur pourra se produire. S'il y a un erreur je veux qu'une valeur s'incrémente de 1. S'il y a encore une erreur, ma variable s'incrément encore de 1 et ainsi de suite.


C'est facon de faire est obligatoire jusqu'à temps qu'il ne rencontre plus d'erreur.

Je ne sais pas comment coder la gestion d'erreur. C'est possible en VB6 ?

C'est la variable SS_Count qui me pose problème. Si dans mon fichier Autocad la valeur SS_Count existe alors j'ai un erreur. Donc je dois incrémenter la valeur de 1. Je ne sais pas comment faire une boucle avec la gestion d'erreur.

merci d'avance

   SS_Count = SS_Count + 1

   'On Error GoTo SS_Count + 1
   Set ssetObj = ActiveDocument.SelectionSets.Add("SS_Count")
   
   Call ssetObj.SelectOnScreen
   ' on compte le nombre de sélections
   Cpt1 = ssetObj.Count
   ' on transforme le jeu de sélection en tableau
   ReDim TblSel(0 To Cpt1 - 1) As Object
...

3 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
22 mars 2010 à 20:35
Salut
Le VB de Autocad est du VBA, pas du VB6.

Pour ne pas être dérouté lors d'une erreur :
On Error Resume Next
Pour reprendre une gestion d'erreur normale :
On Error Goto 0
Pour orienter l'erreur vers une étiquette :
On Error Goto monEtiquette

monEtiquette:
MsgBox "Il y a eu une erreur (" & CStr(Err.Number) & " - " & Err.Description & ")"

Attention à ne pas passer par "monEtiquette" s'il n'y a pas eu d'erreur --> Penser à mettre un Exit Sub ou Exit Function devant, les gestions d'erreur se mettant, traditionnellement, en bas de procédure

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
22 mars 2010 à 20:47
merci de l'explication...

mais je ne dois pas créer un msgbox... je voulais réparer l'erreur immédiatement sans que l'utilisateur s'en rendre compte.


mais je vais essayer de m'arranger un truc avec le code que tu viens de m'expliquer.

merci encore
0
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
23 mars 2010 à 10:15
Oui, ceci n'était qu'un exemple expliquant comment dérouter une erreur.
Après, ce que tu fais lors du traitement, c'est à toi de l'imaginer.
Si tu dois faire une action différente en fonction d'un compteur, pense à l'instruction Select Case

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous