Probleme avec la gestion des erreurs

Résolu
DEWI France Messages postés 5 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 11 mai 2006 - 11 mai 2006 à 12:49
DEWI France Messages postés 5 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 11 mai 2006 - 11 mai 2006 à 16:16
Bonjour a tous,

J'ai un petit soucis avec la gestion des erreurs.

Quand dans mon code je mets un "On error resume next" ou "on error goto..." ceci s'applique pour toutes les erreurs qui suivent dans ma procedure.

Y a-t-il un moyen pour que cela ne s'applique que pour l'erreur qui suit (genre la selection d'une feuille excel qui n'existe pas) ou bien cela depnd-il du code et de ce que je veux faire et dans ce cas, il faut que je trouve un autre moyen de faire?

Je sais pas si j'ai été bien clair, si jamais je reexpliquerai plus concrètement.

Merci d'avance pour vos conseil.

7 réponses

cs_deuspi Messages postés 10 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 15 juin 2006
11 mai 2006 à 14:16
Pour activer la gestion d'erreur, comme tu dis tu dois écrire "On Error Goto <étiquette>"
Tu peux très bien la désactiver avec l'instruction "On Error Goto 0"

Donc en gros :

On Error Goto ErrHandler

'traitement susceptible de remonter une erreur

On Error Goto 0

'reste du traitement

Exit Sub

ErrHandler:

'traitement de l'erreur
3
NHenry Messages postés 15115 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 8 mai 2024 159
11 mai 2006 à 12:52
Bonjour

En utilisant On Error Goto ...
tu peux ensuite récupérer err.number, il dépend de l'erreur générée.
Ensuite tu peux utiliser :
Resume 0 (réexecuter l'instruction qui a posé pb)
ResumeNext (instruction suivante)
Resume ... (saut à l'étiquette ...)
Sinon, utilise err.clear (il me semble que c'est ça).

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
11 mai 2006 à 12:58
Oui, celà s'applique pour toutes les
erreurs qui suivent, car tu ne sais pas à priori quelle ligne va
planter. Ce n'est pas comme pour le try{} catch{} de .NET

Si tu veux que çà ne s'applique que pour une ligne, crée un "On error
Goto ailleurs" juste après la ligne qui peut poser problème.




Manu
0
DEWI France Messages postés 5 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 11 mai 2006
11 mai 2006 à 14:17
oki, merci. j'essaye ca et je vous tiens au courant.
0

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

Posez votre question
DEWI France Messages postés 5 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 11 mai 2006
11 mai 2006 à 14:35
Rebonjour

la methode :

On Error Goto ErrHandler

'traitement susceptible de remonter une erreur

On Error Goto 0

'reste du traitement

Exit Sub

ErrHandler:

'traitement de l'erreur

marche tres bien a priori.

Merci beaucoup
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
11 mai 2006 à 15:28
Salut,

Sans mettre mon grain de sel,
www.vbfrance.com/reglement.aspx

Il faut accepter les réponses quand elles conviennent, ça évitera (mon cas par exemple) d'aller sur le message alors que la réponse est toute trouvée.

Merci.

++
Mortalino
0
DEWI France Messages postés 5 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 11 mai 2006
11 mai 2006 à 16:16
j'avais pas fini de tester si ca marchait

et je confirme ca marche.

Voila.

Merci encore
0
Rejoignez-nous