• Initiateur de la discussion Initiateur de la discussion Maxime
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Maxime

Guest
Bonjour,

Comment faire pour créer un
Code:
On error goto
valable pour tout le projet VBA???
Est ce possible?
Merci
Max 😉
 
Bonsoir Maxime, bonsoir à toutes et à tous 🙂

Tout est possible, tout est réalisable 🙂

Essaie le code suivant :

Option Explicit

Sub Main()
On Error GoTo MonGestionnaire
Cells.ClearContents
Call SousProcedure
MsgBox 'De retour de SousProcedure'
Exit Sub
MonGestionnaire:
MsgBox 'Erreur n° ' & Err.Number
Err.Clear
Resume Next
End Sub

Sub SousProcedure()
Range('A1') = 'Coucou'
MsgBox 'Dans SousProcedure juste avant l'erreur'
' On simule une erreur
Err.Raise 1004
MsgBox 'Dans SousProcedure après erreur'
End Sub

Tu peux placer un gestionnaire d'erreur dans la procédure principale de ton appli. L'aide d'XL sur l'instruction On Error GoTo dit ceci :

Un gestionnaire d'erreurs est 'validé' lorsqu'il a été désigné par une instruction On Error ; le gestionnaire d'erreurs 'actif' est un gestionnaire validé qui traite une erreur. Si une erreur se produit alors qu'un gestionnaire d'erreurs est actif * (c'est-à-dire entre la ligne où survient une erreur et une instruction Resume, Exit Sub, Exit Function ou Exit Property), le gestionnaire d'erreurs de la procédure en cours ne peut gérer l'erreur. Le contrôle revient à la procédure appelante. Si la procédure appelante possède un gestionnaire d'erreurs validé, il est activé afin de gérer l'erreur. Si le gestionnaire d'erreurs de la procédure appelante est également actif, le contrôle est restitué aux procédures appelantes antérieures jusqu'à ce qu'un gestionnaire d'erreurs validé mais inactif soit trouvé. Si aucun gestionnaire d'erreurs validé et inactif n'est trouvé, l'erreur est fatale à l'emplacement où elle s'est produite. Chaque fois que le gestionnaire d'erreurs repasse le contrôle à une procédure appelante, cette procédure devient la procédure en cours. Lorsqu'une erreur est gérée par un gestionnaire d'erreurs dans n'importe quelle procédure, l'exécution reprend dans la procédure en cours à l'emplacement désigné par l'instruction Resume.

* C'est également valable en l'absence de gestionnaire d'erreurs actif.

Dans l'exemple donné, la dernière instruction de SousProcedure n'est pas exécutée car Main a repris la main. S'il y avait eu un appel de sous procédure juste après Err.Raise, il n'aurait pas été effectué...

Je pense qu'il vaut mieux gérer les erreurs dans chaque procédure, mais bon ! à chacun de voir...

A+ 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
360
Réponses
5
Affichages
575
Retour