Private Sub Workbook_Open()
Sheets("sem1").Protect "3", UserInterfaceOnly:=True 'est-ce bien nécessaire ???
Application.OnTime 1, "ThisWorkbook.Enregistrer"
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
Enregistrer
End Sub
Sub Enregistrer()
If IsError([OK]) Then
Dim nom$, ext$, x As Variant
nom = Me.FullName
ext = Mid(nom, InStrRev(nom, ".")) 'extension du fichier
ChDir Me.Path 'pour afficher le répertoire du fichier
Do
x = Application.GetSaveAsFilename
If x = False Then
Me.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
Exit Sub
End If
If Right(x, 1) = "." Then x = Left(x, Len(x) - 1)
Loop While x & ext = nom 'interdit l'enregistrement sous le même nom
Application.EnableEvents = False
Application.DisplayAlerts = False
Me.Save 'en cas de modification du fichier modèle
Me.SaveAs x & ext, Me.FileFormat
Me.Names.Add "OK", True, Visible:=False 'nom défini masqué
End If
Application.EnableEvents = False
Me.Save
Application.EnableEvents = True
End Sub
Sub SupprimeNomOK()
'à exécuter si le nom "OK" a été créé par erreur...
On Error Resume Next
Me.Names("OK").Delete
Application.EnableEvents = False
Me.Save
Application.EnableEvents = True
End Sub