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 dans une boucle While


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut Gestion des erreurs dans une boucle While
    Bonjours,


    J essaye de gere mes erreurs dans une boucle et lorsqu'une erreur est généré la manipuler et ensuite continuer dans la boucle.
    Cependant je n arrive pas à le faire, je débute en VBA.

    Voila ce que j'ai tenté


    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
    17
    18
     
     
    While ((Range("A" & numLigne) <> "") And (Range("B" & numLigne) <> "") And (Range("C" & numLigne) <> ""))
     
            'Ouverture du fichier avec le chemin de la colonne A
            On Error GoTo GestionErreur
    ...
     
            numLigne = numLigne + 1
     
            Exit Sub
    GestionErreur:
                MsgBox Err.Description
                Range("D" & numLigne) = "Erreur ligne" & numLigne & ": " & Err.Description
                Range("A" & numLigne, "C" & numLigne).Interior.ColorIndex = 45
                numLigne = numLigne + 1
                Resume
    Wend
    Losrque le compilateur passe sur la lisgne "Exit Sub" il recommence ma méthode depuis le début, c est dire qu il repart la boucle depuis 0

    Cordialement

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    Modifie ta procédure en déplaçant le gestionnaire d'erreur en dehors de la boucle

    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
    17
    18
    19
    20
    21
    Dim i As Integer, x As Integer
     
    While ((Range("A" & numLigne) <> "") And _
        (Range("B" & numLigne) <> "") And _
        (Range("C" & numLigne) <> ""))
     
        'Ouverture du fichier avec le chemin de la colonne A
        On Error GoTo GestionErreur
        '...
        numLigne = numLigne + 1
     
    Wend
     
    Exit Sub
     
    GestionErreur:
        MsgBox Err.Description
        Range("D" & numLigne) = "Erreur ligne" & numLigne & ": " & Err.Description
        Range("A" & numLigne, "C" & numLigne).Interior.ColorIndex = 45
        numLigne = numLigne + 1
        Resume


    bonne soirée
    michel

Discussions similaires

  1. gestion des erreurs dans une boucle
    Par shimomura22 dans le forum C#
    Réponses: 4
    Dernier message: 17/04/2015, 09h51
  2. Gestion des erreurs dans une requête "IF"
    Par tineighty dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/10/2007, 18h22
  3. [MySQL] récupérer les dimensions des images dans une boucle while
    Par Navyel dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/08/2007, 11h09
  4. Gestion des erreurs dans une classe
    Par gregb34 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 26/07/2007, 09h59
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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