Gestion des erreurs GOTO étiquette
Bonjour,
Je vous écris car je ne comprends pas un soucis dans mon programme,
La gestion des erreurs se fait bien sur une partie, mais à la fin, lorsque je veux ouvrir un fichier qui n'existe pas (erreur), il se met en erreur tout de même.
Voici le code en question :
On Error GoTo S2
' Ouverture de Devis3.xlsx :----------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis3.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis3.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Range("A1").Select
' Fermeture de Devis3.xlsx :
Workbooks("Devis2.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de Devis4.xlsx :----------------------------------------------------------------------
S2:
On Error GoTo S3:
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis4.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis4.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Range("A1").Select
' Fermeture de Devis4.xlsx :
Workbooks("Devis4.xlsx").Close False
Application.DisplayAlerts = True
S3:
Je vous remercie pour votre.
Cordialement,
Maxime
C'est : Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis4.xlsx"
Qui se met en jaune en erreur tout de même.
Encore merci..
Bonjour,
Lorsque qu'une erreur survient, une variable change de valeur pour indiquer qu'une erreur est survenue. Le fait d'écrire "On Error Goto" est une sortie de If. Si la variable erreur indique une erreur, alors je fais le saut. MAIS cela ne reset pas la variable erreur! Donc même si tu corriges ton erreur, si tu n'indiques pas qu'il n'y a plus d'erreur, tu fais tous les sauts 'On Error Goto'!
Deuxième remarque, le programme suis son cours, donc:
'action1
saut1:
entrera toujours dans saut1, alors que toi tu ne veux y entrer que si il y a erreur !!
Solution
On Error Goto saut1
'action1
Exit Sub ' sinon on rentre dans saut1 et ainsi de suite
saut1:
Err.Clear
On error Goto saut2
'actions...
saut2:
Err.Clear
'etc...
Salut,
Il suffit de ''raffraichir'' ton code. Avant l'instruction On Error GoTo S3: place l'instruction On Error GoTo -1.
Cordialement.
Tout d'abord merci pour votre aide,
cela fonctionne,
Seul problème lorsque je supprime des fichiers dans la destination ou aller chercher les infos en cas d'erreurs
pour devis2 (suppression du dossier), il ignore bien l'erreur et passe à l'étape 3...
Mais pour devis 4, il affiche un message élément manquant..
Or je ne veux pas qu'il spécifie ce manque.
Voici le nouveau code complet :
Sub CreationSynthese()
'Synthèse des documents à traiter
' Ecriture du numéro de compte puis de la date
Range("E3:H3") = "Synthèse du compte XXXXXX au XX/XX/XXXX"
' Mise en forme de la ligne de titre :
Range("E2:H2").Interior.Color = 13434879 '(Jaune pâle)
Range("E2:H2").Font.Bold = True
Range("E3:H3").Interior.Color = 13434879 '(Jaune pâle)
Range("E3:H3").Font.Bold = True
Range("E4:H4").Interior.Color = 13434879 '(Jaune pâle)
Range("E4:H4").Font.Bold = True
' Ouverture de ADA.xlsx :--------------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADA.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("ADA.xlsx").Sheets("ADA").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Range("A1").Select
' Fermeture de ADA.xlsx :
Workbooks("ADA.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de ADA-2.xlsx :-----------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADA-2.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("ADA-2.xlsx").Sheets("ADA-2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Range("A1").Select
' Fermeture de ADA-2.xlsx :
Workbooks("ADA-2.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de ADM.xlsx :------------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADM.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("ADM.xlsx").Sheets("ADM").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Range("A1").Select
' Fermeture de ADM.xlsx :
Workbooks("ADM.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de ADS.xlsx :---------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADS.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("ADS.xlsx").Sheets("ADS").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Range("A1").Select
' Fermeture de ADS.xlsx :
Workbooks("ADS.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de COMPTA.xlsx :-------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\COMPTA.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("COMPTA.xlsx").Sheets("COMPTA").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Range("A1").Select
' Fermeture de COMPTA.xlsx:
Workbooks("COMPTA.xlsx").Close False
Application.DisplayAlerts = True
' Ouverture de CHRONO.xlsx :-------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\CHRONO.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("CHRONO.xlsx").Sheets("CHRONO").Range("A1:V1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Range("A1").Select
' Fermeture de CHRONO.xlsx :
Workbooks("CHRONO.xlsx").Close False
Application.DisplayAlerts = True
'-------------------------------------------------------------------------------------------------
On Error GoTo S1
' Ouverture de Devis1.xlsx :----------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis1.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis1.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Range("A1").Select
' Fermeture de Devis1.xlsx :
Workbooks("Devis1.xlsx").Close False
S1:
On Error GoTo -1
On Error GoTo S2
' Ouverture de Devis2.xlsx :---------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis2.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis2.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Range("A1").Select
' Fermeture de Devis2.xlsx :
Workbooks("Devis2.xlsx").Close False
Application.DisplayAlerts = True
S2:
On Error GoTo -1
On Error GoTo S3
' Ouverture de Devis3.xlsx :----------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis3.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis3.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Range("A1").Select
' Fermeture de Devis3.xlsx :
Workbooks("Devis3.xlsx").Close False
Application.DisplayAlerts = True
S3:
On Error GoTo -1
On Error GoTo S4
' Ouverture de Devis4.xlsx :----------------------------------------------------------------------
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis4.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("Devis4.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Range("A1").Select
' Fermeture de Devis4.xlsx :
Workbooks("Devis4.xlsx").Close False
Application.DisplayAlerts = True
S4:
Sheets("Bilan comparatif général").Select
End Sub
Je vous remercie pour votre aide.
Cordialement,
Maxime
Ne serait t'il pas mieux de faire ça avec la fonction :
If Than
ElseIf Than
End If
Si fichier 1 existe (adresse du répertoire) alors faire ça :
Sinon essayer avec fichier 2 sinon ... ainsi de suite
jusqu'à la fin du programme...
Pouvez-vous m'aider ?
Je vous remercie,
Cordialement,
Maxime
J'ai bien ré-écrit mon pgm et cela fonctionne parfaitement, je vous remercie tous deux pour votre aide.
voici mon nouveau code :
Sub CreationSynthese() 'Synthèse des documents à traiter
' Ecriture du numéro de compte puis de la date
Range("E3:H3") = "Synthèse du compte XXXXXX au XX/XX/XXXX"
' Mise en forme de la ligne de titre :
Range("E2:H2").Interior.Color = 13434879 '(Jaune pâle)
Range("E2:H2").Font.Bold = True
Range("E3:H3").Interior.Color = 13434879 '(Jaune pâle)
Range("E3:H3").Font.Bold = True
Range("E4:H4").Interior.Color = 13434879 '(Jaune pâle)
Range("E4:H4").Font.Bold = True
'__________________________________________________________________________________________________
' Ouverture de ADA.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADA.xlsx"
Application.DisplayAlerts = False
' Copie des données :
Workbooks("ADA.xlsx").Sheets("ADA").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA").Range("A1").Select
' Fermeture de ADA.xlsx :
Workbooks("ADA.xlsx").Close
'__________________________________________________________________________________________________
' Ouverture de ADA-2.xlsx
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADA-2.xlsx"
' Copie des données :
Workbooks("ADA-2.xlsx").Sheets("ADA-2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADA-2").Range("A1").Select
' Fermeture de ADA-2.xlsx :
Workbooks("ADA-2.xlsx").Close
'__________________________________________________________________________________________________
' Ouverture de ADM.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADM.xlsx"
' Copie des données :
Workbooks("ADM.xlsx").Sheets("ADM").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADM").Range("A1").Select
' Fermeture de ADM.xlsx :
Workbooks("ADM.xlsx").Close
'________________________________________________________________________________________________
' Ouverture de ADS.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\ADS.xlsx"
' Copie des données :
Workbooks("ADS.xlsx").Sheets("ADS").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("ADS").Range("A1").Select
' Fermeture de ADS.xlsx :
Workbooks("ADS.xlsx").Close
'__________________________________________________________________________________________________
' Ouverture de COMPTA.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\COMPTA.xlsx"
' Copie des données :
Workbooks("COMPTA.xlsx").Sheets("COMPTA").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("COMPTA").Range("A1").Select
' Fermeture de COMPTA.xlsx:
Workbooks("COMPTA.xlsx").Close
'__________________________________________________________________________________________________
' Ouverture de CHRONO.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\CHRONO.xlsx"
' Copie des données :
Workbooks("CHRONO.xlsx").Sheets("CHRONO").Range("A1:V1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("CHRONO").Range("A1").Select
' Fermeture de CHRONO.xlsx :
Workbooks("CHRONO.xlsx").Close
'__________________________________________________________________________________________________
On Error GoTo S1
' Ouverture de Devis1.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis1.xlsx"
' Copie des données :
Workbooks("Devis1.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis1").Range("A1").Select
' Fermeture de Devis1.xlsx :
Workbooks("Devis1.xlsx").Close
S1:
Err.Clear
On Error GoTo S2
'__________________________________________________________________________________________________
' Ouverture de Devis2.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis2.xlsx"
' Copie des données :
Workbooks("Devis2.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis2").Range("A1").Select
' Fermeture de Devis2.xlsx :
Workbooks("Devis2.xlsx").Close
S2:
Err.Clear
On Error GoTo S3
'__________________________________________________________________________________________________
' Ouverture de Devis3.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis3.xlsx"
' Copie des données :
Workbooks("Devis3.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis3").Range("A1").Select
' Fermeture de Devis3.xlsx :
Workbooks("Devis3.xlsx").Close
S3:
Err.Clear
On Error GoTo S4
'__________________________________________________________________________________________________
' Ouverture de Devis4.xlsx :
Workbooks.Open "Y:\Industrie\Situation Affaire supérieure à 250k€\Données_112163\Devis4.xlsx"
' Copie des données :
Workbooks("Devis4.xlsx").Sheets("feuil2").Range("A1:P1000").Copy
Workbooks("Générateur de bilan de comptes.xlsm").Activate
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Select
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Paste
Workbooks("Générateur de bilan de comptes.xlsm").Sheets("Devis4").Range("A1").Select
' Fermeture de Devis4.xlsx :
Workbooks("Devis4.xlsx").Close
Application.DisplayAlerts = True
S4:
Err.Clear
Sheets("Bilan comparatif général").Select
End Sub
Le sujet est résolu.
Cordialement,
Maxime.