Bonjour,
[Edit] Oups... Salut Banzai !
Il y a 2 écoles :
La plus simple est de mettre cette macro dans le module ThisWorkbook du classeur cible
Private Sub Workbook_Open()
For i = 1 To Worksheets.Count
Worksheets(i).Protect Password:="Galopin", UserInterfaceOnly:=True
Next
End Sub
... En remplaçant "Galopin" par "TonMotDePasse" habituel
Cette macro protège toutes les feuilles du classeur, mais autorise un fonctionnement normal des macros.
Inconvénient de cette macro : En cas de plantage d'Excel (en particulier dans la phase de débogage ou tes macros sont un peu aléatoire...) Il peut s'avérer nécessaire de relancer la Sub Workbook_Open() car cette macro étant Volatile Excel peut "oublier" d'autoriser les macros après un plantage.
La deuxième école (un peu "bourrin") est de déprotéger la feuille au début de chaque macro et de la reprotéger ensuite. Ce qui peut s'avérer vite lassant si tu as 90 macros dans ton classeur... De plus cette méthode peut également s'avérer compliquée à mettre en oeuvre si une macro intervient simultanément sur plusieurs feuilles.
A+