Private Sub Workbook_Open()
50 With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
'Ligne "technique" pour accélérer l'exécution.
75 On Error GoTo M 'Pour sortir de la procédure si la feuille modèle _
n'existe pas.
80 Sheets("Feuille_modèle").Copy After:=Sheets(Sheets.Count) 'Ajoute une copie _
de la feuille "Feuille_modèle" à la fin du classeur.
90 On Error GoTo S 'Si une erreur se produit dans la ligne qui _
suit, elle est ignorée, et l'exécution continue à la ligne _
suivante après le traitement de l'erreur (ligne S).
100 Sheets(Sheets.Count).Name = Format(Date, "dd mmm yyyy") '...renomme _
la feuille créée avec la date du jour. Si ce nom existe déjà dans _
le classeur, une erreur se produit. Grâce à la ligne 90 cette erreur _
est ignorée et l'exécution du code continue.
E: On Error GoTo 0 'A partir d'ici, les éventuelles erreurs ne sont plus _
ignorées.
130 With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
'Ligne "technique" pour rétablir les paramètres modifiés à la ligne 50. _
Le code fonctionne aussi si les lignes 50 et 130 sont supprimées, mais _
l'exécution est plus lente.
Exit Sub
M: MsgBox "Le nom de la feuille modèle est incorrect.": Resume E
'Suppression de la feuille créée si une erreur survient ligne 100.
S: With Application: .DisplayAlerts = False: Sheets(Sheets.Count).Delete: .DisplayAlerts = True: End With
Resume Next
End Sub