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
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
bonjour
oui c'est possible avec la commande "On Error Resume Next " que tu peux utiliser ainsi :
à plus
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
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
bonsoir
en complément des réponses deja données :
http://silkyroad.developpez.com/VBA/GestionErreurs/
bon week end
michel
Salut PiliSqlPour 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.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?
A+
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.
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.
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
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
as-tu essayé d'ajouter dans ton code "On Error Resume Next" ?
à plus
Salut à tous
tu peux essayer :Je ne l'ai pas testée, mais c'est un principe que j'utilise fréquement
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
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager