Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA PROBLEME AVEC ON ERROR GOTO

6 réponses
Avatar
OLIVIER POTONNIER
Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier

6 réponses

Avatar
papou
Bonjour
Dans ta gestion d'erreur as-tu un Resume Next en fin de traitement ?
Cordialement
Pascal

"OLIVIER POTONNIER" <OLIVIER a écrit
dans le message de news:

Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne
de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier


Avatar
Yvan
Bonjour Olivier

Voir ceci: http://www.excelabo.net/xl/erreurs.php#erreursppe

L'utilisation de On error goto nécessite de réinitialiser le gestionnaire
d'erreurs après chaque erreur avec un Resume XXX.

Essaie ces deux procédures en pas à pas. Elles fonctionnent correctement (boucle
à l'infini). Par contre, si tu mets en commentaire le Resume Ici dans la
seconde, elle se plante.

Public Sub TestErreur()
Dim Val As Single
Val = 0
On Error Resume Next
suite:
Val = 1 / Val
Debug.Print Err, Val
If Err = 0 Then Exit Sub
Err.Clear
Val = 0
GoTo suite
End Sub

Public Sub TestErreur1()
Dim Val As Single
Val = 0
suite:
On Error GoTo Erreur
Val = 1 / Val
Exit Sub
Erreur:
Debug.Print Err, Val
Resume Ici
Ici:
Err.Clear
Val = 0
GoTo suite
End Sub


@+

Yvan


"OLIVIER POTONNIER" <OLIVIER a écrit dans
le message de news:
Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier


Avatar
OLIVIER POTONNIER
Le but de mon code est d'ouvrir des dossiers ayant un nom composé de la date
du jour exemple 20060101 pour le 01/01/2006. Seulement, il est possible
d'avoir des trous dans la serie de noms de dossier.
Donc mon objectif est de composé le nom des dossiers potentiels et de tenter
de les pointer avec l'instruction ChDir dans une boucle for puis de générer
un traitement en cas de succès.
En cas d'erreur de passer à la composition du nom suivant. Mon instruction
on error goto m'amène donc à l'instruction next de ma boucle. J'essaie plus
de passer au cas suvant que de gérer l'erreur en cours. Il n'y a pas donc pas
de "retour" au traitement via l'instruction resume.

J'espère avoir été clair, merci de votre aide

OP


Bonjour
Dans ta gestion d'erreur as-tu un Resume Next en fin de traitement ?
Cordialement
Pascal

"OLIVIER POTONNIER" <OLIVIER a écrit
dans le message de news:

Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne
de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier







Avatar
OLIVIER POTONNIER
Je vais tester ta solution

Merci Yvan


Bonjour Olivier

Voir ceci: http://www.excelabo.net/xl/erreurs.php#erreursppe

L'utilisation de On error goto nécessite de réinitialiser le gestionnaire
d'erreurs après chaque erreur avec un Resume XXX.

Essaie ces deux procédures en pas à pas. Elles fonctionnent correctement (boucle
à l'infini). Par contre, si tu mets en commentaire le Resume Ici dans la
seconde, elle se plante.

Public Sub TestErreur()
Dim Val As Single
Val = 0
On Error Resume Next
suite:
Val = 1 / Val
Debug.Print Err, Val
If Err = 0 Then Exit Sub
Err.Clear
Val = 0
GoTo suite
End Sub

Public Sub TestErreur1()
Dim Val As Single
Val = 0
suite:
On Error GoTo Erreur
Val = 1 / Val
Exit Sub
Erreur:
Debug.Print Err, Val
Resume Ici
Ici:
Err.Clear
Val = 0
GoTo suite
End Sub


@+

Yvan


"OLIVIER POTONNIER" <OLIVIER a écrit dans
le message de news:
Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier







Avatar
papou
Re

On Error GoTo GestERR
'ta boucle exemple :
'For i = 1 To 6
'blabla
'Next i
Exit Sub

GestERR:
Err.Clear
Resume Next

Cordialement
Pascal

"OLIVIER POTONNIER" a écrit
dans le message de news:

Le but de mon code est d'ouvrir des dossiers ayant un nom composé de la
date
du jour exemple 20060101 pour le 01/01/2006. Seulement, il est possible
d'avoir des trous dans la serie de noms de dossier.
Donc mon objectif est de composé le nom des dossiers potentiels et de
tenter
de les pointer avec l'instruction ChDir dans une boucle for puis de
générer
un traitement en cas de succès.
En cas d'erreur de passer à la composition du nom suivant. Mon instruction
on error goto m'amène donc à l'instruction next de ma boucle. J'essaie
plus
de passer au cas suvant que de gérer l'erreur en cours. Il n'y a pas donc
pas
de "retour" au traitement via l'instruction resume.

J'espère avoir été clair, merci de votre aide

OP


Bonjour
Dans ta gestion d'erreur as-tu un Resume Next en fin de traitement ?
Cordialement
Pascal

"OLIVIER POTONNIER" <OLIVIER a écrit
dans le message de news:

Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la
ligne
de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier









Avatar
OLIVIER POTONNIER
C'est ok
Merci Yvan

Olivier


Bonjour Olivier

Voir ceci: http://www.excelabo.net/xl/erreurs.php#erreursppe

L'utilisation de On error goto nécessite de réinitialiser le gestionnaire
d'erreurs après chaque erreur avec un Resume XXX.

Essaie ces deux procédures en pas à pas. Elles fonctionnent correctement (boucle
à l'infini). Par contre, si tu mets en commentaire le Resume Ici dans la
seconde, elle se plante.

Public Sub TestErreur()
Dim Val As Single
Val = 0
On Error Resume Next
suite:
Val = 1 / Val
Debug.Print Err, Val
If Err = 0 Then Exit Sub
Err.Clear
Val = 0
GoTo suite
End Sub

Public Sub TestErreur1()
Dim Val As Single
Val = 0
suite:
On Error GoTo Erreur
Val = 1 / Val
Exit Sub
Erreur:
Debug.Print Err, Val
Resume Ici
Ici:
Err.Clear
Val = 0
GoTo suite
End Sub


@+

Yvan


"OLIVIER POTONNIER" <OLIVIER a écrit dans
le message de news:
Bonjour,

J'utilise l'instruction on error goto en début de code.
Dans une boucle, lors de la première erreur la gestion se déroule
correctement mais l'erreur suivante, le programme se bloque sur la ligne de
code en erreur et ne va pas à la ligne indiquée en cas d'erreur.

Est ce que mon instruction on error goto est mal placée ?
Faut il "réinitialiser" la gestion s'il y a eu une première erreur ?

Merci de votre aide

Cordialement

Olivier