Bonjour,
J'ai un problème que je n'arrive pas à résoudre malgré pas mal de temps passé dessus.
Le coeur du problème est celui-ci: le code dans Workbook_BeforeClose n'est pas exécuté si l'utilisateur clique sur "Non" dans la boîte de dialogue de fermeture du classeur alors que l'événement a bien lieu.
Je m'explique:
A l'ouverture du classeur, j'ai un code qui vérifie si le classeur est en lecture seule
Si c'est le cas, rien ne se passe - Sinon (le classeur est alors ouvert en écriture), j'ai un userform qui demande de saisir ses initiales et les inscrit dans la cells(1,1).
If ThisWorkbook.ReadOnly = False Then
UserFormOuvertParQui.Show
End If
Le code du userform est tout bête:
Private Sub CommandButtonOk_Click()
If UserFormOuvertParQui.TextBoxSaisieInitiales.Text = "" Then
MsgBox ("Entrez vos initiales SVP")
UserFormOuvertParQui.TextBoxSaisieInitiales.SetFocus
Else
Sheets("questSysoupofoap").Cells(1, 1) = "Ouvert par " & UCase(UserFormOuvertParQui.TextBoxSaisieInitiales)
ThisWorkbook.Save
UserFormOuvertParQui.Hide
End If
End Sub
Private Sub UserForm_Initialize()
With UserFormOuvertParQui.TextBoxSaisieInitiales
.Text = ""
.SetFocus
End With
End Sub
A la fermeture du classeur, j'ai un code qui vérifie si le classeur est en lecture seule
Si c'est le cas, rien ne se passe - Sinon (le classeur est alors ouvert en écriture), j'éxécute:
If ThisWorkbook.ReadOnly = False Then
Sheets("questSysoupofoap").Cells(1, 1).ClearContents
End If
Le truc étrange c'est que quand je suis en écriture et que je ferme puis clique sur "Non" (donc ne pas enregistrer), la cells(1,1) est bien nettoyé mais son contenu est conservé à la réouverture !
Je joins un classeur sans données.
Merci pour vos idées.