Option Explicit
Dim sauver As String
Dim nomfic
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xls", ".NEW"))
Application.DisplayAlerts = True
Feuil2.Visible = xlSheetVisible
Feuil3.Visible = xlSheetVisible
Feuil1.Visible = xlSheetVeryHidden
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
nomfic = ActiveWorkbook.FullName
sauver = MsgBox("Voulez-vous enregistrer les modifications apportées à " & _
Replace(ActiveWorkbook.Name, ".NEW", ".xls") & "?", vbYesNoCancel + vbExclamation)
Select Case sauver
Case vbCancel
Cancel = True
Case vbYes
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
Kill nomfic
Application.DisplayAlerts = True
Case vbNo
Feuil1.Visible = xlSheetVisible
Feuil2.Visible = xlSheetVeryHidden
Feuil3.Visible = xlSheetVeryHidden
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls"))
Kill nomfic
End Select
End Sub
Re : Forcer l'Activation des macro à l'ouverture du fichier
Bonjour à tous
Je te soumets une autre solution Tatiak, qu'en pense tu ?
Code:Option Explicit Dim sauver As String Dim nomfic Private Sub Workbook_Open() Application.ScreenUpdating = False Application.DisplayAlerts = False ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xls", ".NEW")) Application.DisplayAlerts = True Feuil2.Visible = xlSheetVisible Feuil3.Visible = xlSheetVisible Feuil1.Visible = xlSheetVeryHidden End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False nomfic = ActiveWorkbook.FullName sauver = MsgBox("Voulez-vous enregistrer les modifications apportées à " & _ Replace(ActiveWorkbook.Name, ".NEW", ".xls") & "?", vbYesNoCancel + vbExclamation) Select Case sauver Case vbCancel Cancel = True Case vbYes Application.DisplayAlerts = False ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls")) Kill nomfic Application.DisplayAlerts = True Case vbNo Feuil1.Visible = xlSheetVisible Feuil2.Visible = xlSheetVeryHidden Feuil3.Visible = xlSheetVeryHidden Application.DisplayAlerts = False ActiveWorkbook.SaveAs (ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".NEW", ".xls")) Kill nomfic End Select End Sub
Elle permet de supprimer le fichier "new" si l'on sauvegarde ou non, et "Microsoft Scriting Runtime" n'a pas à être activé
Bonne fin de we à tous
Eric