IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Gestion des erreurs en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Par défaut Gestion des erreurs en VBA
    Bonjour,

    Je débute en VBA et cherche la syntaxe à utiliser pour gérer les erreurs ?

    Existe-t-il un bloc try/catch ?

    Merci

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 078
    Billets dans le blog
    2
    Par défaut
    Bonjour fardon57,

    Existe-t-il un bloc try/catch ?
    Je ne connais pas, c'est utilisé dans quel langage ?

    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
    1
    2
    3
    4
    Exit Sub
    Err1:
    Msgbox "Erreur" & err.number
    end Sub
    avec la possibilité d'utiliser des commandes comme

    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

    pas sûr que tout ça soit trés clair...

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un excellent tuto sur le sujet --> http://silkyroad.developpez.com/VBA/GestionErreurs/


  4. #4
    Membre éclairé Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Par défaut
    Bonjour,
    Tu peux utiliser ceci:
    Qui n'executera pas la ligne qui suit si elle provoque une erreur

    Ou:
    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
    Qui permet de mieux gérer les erreurs


    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:
    Je ne connais pas, c'est utilisé dans quel langage ?
    Ca c'est en VB.NET

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    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

  6. #6
    Membre actif
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Par défaut
    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

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    il existe une commande err.raise, pour lever une exception dans une procédure.

Discussions similaires

  1. question d'un débutant sur la gestion des erreurs en VBA
    Par David1259 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/01/2009, 12h43
  2. [VBA-EXCEL] Gestion des erreurs et manipulation du contenu d'une cellule
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/09/2008, 20h42
  3. [VBA] Gestion des Erreurs, type de l'objet Err
    Par bastienh dans le forum VBA Access
    Réponses: 7
    Dernier message: 26/06/2007, 10h28
  4. [VBA-E] Dysfonctionnement dans la gestion des erreurs
    Par Choco49 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2006, 11h44
  5. [VBA-E] Pb sur gestion des erreurs
    Par micoscas dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 08/03/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo