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 :

De l'interet de On Error Goto 0 ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut De l'interet de On Error Goto 0 ?
    Bonjour à tous.

    Tout est dans le titre, je ne comprends absolument pas l'interet de cette instruction qui, si j'ai tout bien compris, permet de désactiver la gestion des erreurs, et de permettre à ces dernières, de se manifester.

    Merci d'éclairer ma lanterne.

    A+ !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    si tu ne met pas de gestion d'erreur, ton code s'arrete, et te propose
    fin, débuger, aide. si c'est un utilisateur lambda qui utilise ton code, il peut a ce moment la écrire une C... dans ta macro.
    si tu met on error.resume next
    le code ne s'arrete pas et passe a l'instruction suivante
    mais tu ne sais pas qu'il y a eu erreur, et tu ne sais pas laquelle
    si en cas d'erreur, tu l'envoie sur ligne 0 et que la il envoie par exemple un message avec le code d'erreur, puis sort de la sub. toi tu sais ou tu en es, et l'utilisateur n'a pas eu acces a ton code
    ce n'est qu'une utilisation possible, moi, je ne m'en sert jamais, mais ceusse qui sont un peu plus pointus trouvent ça tres utile

  3. #3
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour KKShi666

    Quand on choisit de faire un traitement d'erreur c'est parceque l'on sait qu'il est susceptible d'y avoir une erreur et que l'on veut la traiter

    un exemple : je fais une procedure de auvegarde pour mon fichier et je veux que les sauvegardes se fasse dans une repertoire different selon le mois.

    Le repertoire nexiste pas forcement, donc il faut le créer, par
    MKDIR "C:\save\mois" & mois
    je sais qu'à la premiere utilisation mo programme va fonctionner mais au suivante il va planter car il essaye de creer un repertoire qui existe deja
    donc je vais traiter l'erreur
    On Error Resume Next ' Continue la macro meme s'il y a une erreur
    MKDIR "C:\save\mois" & mois

    Mais cela presente un autre probleme, à chaque fois que la macro va provoquer une erreur, le resume next va s'effectuer et je ne verrai meme plus mes fautes de frappe, dnc je vais rendre le controle des erreurs à excel avec On Error GoTo 0

    ce qui donne
    On Error Resume Next ' Continue la macro meme s'il y a une erreur
    MKDIR "C:\save\mois" & mois
    On Error GoTo 0

    Déja faire un traitement d'erreur est delicat, il faut savoir pourquoi on le fait, mais ne pas rendre le controle à Ecel ensuite devient tout simplement suicidaire.

    Bonne Journée

  4. #4
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonjour,

    Voici un exemple d'utilisation de cette instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function f1()
    On Error GoTo Err_Handle
     
        Debug.Print f2(10, 0)
     
    End_Handle:
        exit function
    Err_Handle:
        MsgBox err.Description
        Resume End_Handle
    End Function
    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
    Function f2(a As Integer, b As Integer)
    Dim c As Integer
     
       'début du code. Pas de Gestion d'ereur. Les erreurs sont renvoyées à l'appelant
        c = 10/ 0  'ligne à mettre en commentaire pour tester la suite
     
       'ici dont on veut ignorer l'erreur
         On Error Resume Next
         c = 5 / 0
     
    On Error GoTo 0
        'ici un code pour lequel on veut que les erreurs provoquent
        'une sortie de la fonction et une gestion par la fonction appelante
        f2 = a / b
     
    End Function
    Comme on a utilisé un On error Resume next, le On Error goto 0 ici permet de retrouver le comportement sans gestion d'erreur et donc ici de renvoyer l'erreur à la fonction f1.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Ok merci à tous, c'est extrêmement clair.
    Résolu donc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pourquoi on error goto ne fonctionne qu'une seule fois ?
    Par alsimbad dans le forum Général VBA
    Réponses: 9
    Dernier message: 05/09/2014, 12h09
  2. pb avec "On error goto"
    Par malingue dans le forum Access
    Réponses: 9
    Dernier message: 20/06/2006, 19h54
  3. [vb6]On Error goto 0
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/04/2006, 20h04
  4. On error goto Err : goto non exécutée au 2ème appel
    Par charliejo dans le forum Access
    Réponses: 1
    Dernier message: 11/04/2006, 15h00
  5. [VBA-E]Pb "On Error GoTo"
    Par hdidan dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 04/04/2006, 18h41

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