Bonjour à tous,
J'avais trouvé une méthode sur le net pour que l'utilisateur ne puisse pas supprimer certaines feuilles d'un classeur Excel.
Voici ce que j'avais trouvé:
J'ai copié tout ça et ça fonctionnait très bien dans mes classeurs jusqu'à ce que je crée une macro dans un classeur externe qui ouvre/ferme ces derniers.
Pendant la macro, à la fin, je ne sais pas trop quand mais les classeurs qui ont été fermés par la macro se réouvrent tout seuls.
J'ai compris que ça venait du fait qu'avant de fermer ces classeurs il faut désactiver Application.OnTime.
J'ai notamment lu et tenté de bidouiller en fonction de ces deux discussions:
https://www.excel-downloads.com/threads/stop-chrono-je-bloque.230117/
https://www.excel-downloads.com/thr...n-classeur-se-reouvre-automatiquement.222842/
Mais je n'arrive pas à écrire cette désactivation...
Mon essai:
Est-ce que quelqu'un pourrait m'aider, s'il vous plaît?
Merci d'avance,
avaya
J'avais trouvé une méthode sur le net pour que l'utilisateur ne puisse pas supprimer certaines feuilles d'un classeur Excel.
Voici ce que j'avais trouvé:
Code:
‘IN every sheet module:
Private Sub Worksheet_Deactivate()
ThisWorkbook.Protect , True
Application.OnTime Now, “UnprotectBook”
End Sub
'In a normal module:
Sub UnprotectBook()
ThisWorkbook.Unprotect
End Sub
Works in any Excel version!
J'ai copié tout ça et ça fonctionnait très bien dans mes classeurs jusqu'à ce que je crée une macro dans un classeur externe qui ouvre/ferme ces derniers.
Pendant la macro, à la fin, je ne sais pas trop quand mais les classeurs qui ont été fermés par la macro se réouvrent tout seuls.
J'ai compris que ça venait du fait qu'avant de fermer ces classeurs il faut désactiver Application.OnTime.
J'ai notamment lu et tenté de bidouiller en fonction de ces deux discussions:
https://www.excel-downloads.com/threads/stop-chrono-je-bloque.230117/
https://www.excel-downloads.com/thr...n-classeur-se-reouvre-automatiquement.222842/
Mais je n'arrive pas à écrire cette désactivation...
Mon essai:
Code:
‘IN every sheet module:
Private Sub Worksheet_Deactivate()
ThisWorkbook.Protect , True
DateNow = Now
Application.OnTime DateNow, "UnprotectBook"
'In a normal module:
Sub UnprotectBook()
ThisWorkbook.Unprotect
End Sub
End Sub
'In ThisWorkbook:
Public DateNow As Date
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime DateNow, "UnprotectBook", Schedule:=False
End Sub
Est-ce que quelqu'un pourrait m'aider, s'il vous plaît?
Merci d'avance,
avaya
Dernière édition: