Bonjour,
Je débute en VBA et cherche la syntaxe à utiliser pour gérer les erreurs ?
Existe-t-il un bloc try/catch ?
Merci
Bonjour,
Je débute en VBA et cherche la syntaxe à utiliser pour gérer les erreurs ?
Existe-t-il un bloc try/catch ?
Merci
Bonjour fardon57,
Je ne connais pas, c'est utilisé dans quel langage ?Existe-t-il un bloc try/catch ?
Les erreurs sont gérées par de commandes du type
avec à la fin de la sub un bloc
Code : Sélectionner tout - Visualiser dans une fenêtre à part On error Goto Err1
avec la possibilité d'utiliser des commandes comme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Exit Sub Err1: Msgbox "Erreur" & err.number end Sub
Resume : retour à la ligne source de l'erreur
Resume Next : passage à la ligne suivante de l'erreur
et
qui permet de réactiver les plantages normaux
Code : Sélectionner tout - Visualiser dans une fenêtre à part On Error Goto 0
pas sûr que tout ça soit trés clair...
Bonjour,
Un excellent tuto sur le sujet --> http://silkyroad.developpez.com/VBA/GestionErreurs/
![]()
Bonjour,
Tu peux utiliser ceci:
Qui n'executera pas la ligne qui suit si elle provoque une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part On Error Resume Next
Ou:
Qui permet de mieux gérer les erreurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub MaSubDeTest() On Error GoTo ErrorHandler 'Le code qui doit s'executer Exit Sub ErrorHandler: 'Le code qui s'execute si il y a une erreur 'Par exemple: Dim MonResultat MonResultat = MsgBox("Erreur n° " & Err.Number & vbCrLf & "Description : " & Err.Description, vbCritical + vbOKOnly, "Erreur d'execution") End Sub
EDIT: A peine le temps de répondre qu'il y a déjà deux réponses avant moi !!!
Sinon, pour répondre a cette question:
Ca c'est en VB.NETJe ne connais pas, c'est utilisé dans quel langage ?
tu peux reproduire un équivalent de try catch comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 on error resume next 'les erreurs deviennent non bloquantes 'instructions ......... 'gestion de lexception select case err.number case 1 'traitement case 1004 'traitement case else 'dans tout autre cas end select on error goto 0 'les erreurs sont de nouveau bloquantes
Merci, je vais essayer tout ça.
Est-t-il possible de definir ces propres "exceptions" ? Lorsque notre business logique le necessite, et pas seulement apres une erreur Excel
il existe une commande err.raise, pour lever une exception dans une procédure.
Partager