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 d'erreurs VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Gestion d'erreurs VBA
    Bonjour,

    Est - il possible lors de l'exécution d'une macro si une erreur se produit, l'exécution ne s"arrête pas mais elle passe à la ligne suivante du code?

    Une Gestion d'erreur, sachant que j'ai Bcp de ligne de code.

    Merci

  2. #2
    Membre actif
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Points : 246
    Points
    246
    Par défaut
    bonjour

    oui c'est possible avec la commande "On Error Resume Next " que tu peux utiliser ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        On Error Resume Next 'gestion des erreurs qui permet de continuer le programme
        'meme s'il y a une erreur 
     
        ' tes lignes de programme
     
     
        On Error GoTo 0 ' interruption de la gestion des erreurs
    à plus

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 44
    Points
    44
    Par défaut
    Salut,
    Il est tout de même conseiller (autant que possible) de corriger les Erreurs plutot que de les "masquer".

    En effet en masquant les erreurs, il se peux qu'au final ta macro (et plus généralement ton programme) ne fasse plus du tout ce pourquoi il était fait.

    @+
    Julien

  4. #4
    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

    en complément des réponses deja données :
    http://silkyroad.developpez.com/VBA/GestionErreurs/

    bon week end
    michel

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut PiliSql
    Est - il possible lors de l'exécution d'une macro si une erreur se produit, l'exécution ne s"arrête pas mais elle passe à la ligne suivante du code?
    Pour répondre à ta question, oui, mais... une erreur est un défaut. On a toujours plusieurs solutions pour pallier à un défaut, et masquer l'erreur ne me semble pas être la meilleur des solutions. mais pour aider, les infos sont nécessaires.
    A+

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Bonsoir, et merci pour vos réponses,

    C'est vrai qu'une erreur est un défaut mais dans mon cas je ne sais pas comment pallier à ce défaut.

    En fait j'utilise une macro qui me permet d"obtenir plusieurs TCD à partir de données brutes.

    Seulement cette macro est codé en dur, si je puis m'exprimer ainsi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      With ActiveSheet.PivotTables(1)   
     
                            .PivotItems("Allemagne").Visible = True
                            .PivotItems("Amérique du Nord").Visible = True
                            .PivotItems("Albanie").Visible = True
                            .PivotItems("Sud Afrique").Visible = True
                            .PivotItems("Peru").Visible = True
                            .PivotItems("Argentine").Visible = True
    ...etc
    en fait quand il ne trouve pas le nom du pays dans les données brutes, il génère une erreur et je suis obligé à chaque fois de supprimer la ligne qui pose problème.


    j'espère que je me suis bien exprimé.

    En fait, ce que je pensais faire c quand ça génère l'erreur, une fonction ou une deuxième macro s'active pour dire de passer à la ligne suivante.
    mais je ne sais pas si c possible

    Merci

  7. #7
    Membre actif
    Inscrit en
    Février 2008
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 208
    Points : 246
    Points
    246
    Par défaut
    as-tu essayé d'ajouter dans ton code "On Error Resume Next" ?
    à plus

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut à tous
    tu peux essayer :
    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
    Dim X As PivotItem
    With ActiveSheet.PivotTables(1)
        For Each X In .PivotItems
            Select Case X.Name
                Case "Allemagne"
                    .PivotItems("Allemagne").Visible = True
                Case "Amérique du Nord"
                    .PivotItems("Amérique du Nord").Visible = True
                Case "Albanie"
                    .PivotItems("Albanie").Visible = True
                Case "Sud Afrique"
                    .PivotItems("Sud Afrique").Visible = True
                Case "Peru"
                    .PivotItems("Peru").Visible = True
                Case "Argentine"
                    .PivotItems("Argentine").Visible = True
        Next X
    End With
    Je ne l'ai pas testée, mais c'est un principe que j'utilise fréquement

    A+

Discussions similaires

  1. [XL-2003] Gestion des erreurs VBA
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2010, 12h06
  2. Gestion d'erreurs VBA
    Par adrien.gendre dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/08/2007, 14h29
  3. [VBA-E]Gestion d'erreur
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/04/2006, 20h05
  4. Question Basique Gestion Erreur VBA ...
    Par Le_Phasme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h42
  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