Private Sub Workbook_Open()
Dim i&
For i = Date To 1 Step -1 'recherche du mot de passe précédent
On Error Resume Next
Me.Unprotect Format(i, "ddmmyyyy")
If Err = 0 Then Exit For
Next
Me.Protect Format(Date, "ddmmyyyy") 'nouveau mot de passe
Me.Save 'enregistrement
Me.Protect 'demande du mot de passe
If Err Then If Workbooks.Count = 1 Then Application.Quit Else Me.Close
Me.Protect Format(Date, "ddmmyyyy") 'remet la protection
Me.Save
End Sub