Protéger une feuille de classeur sans affecter ma macro

Bonjour tout le monde,

J'aurais voulu savoir s'il existe une option capable de faire fonctionner mes macros alors que une ou plusieurs feuilles sous excel sont vérouillées par un mot de passe ?

En effet, vérouiller les feuilles n'est pas un problème, néanmoins toutes macros agissants sur ces feuilles m'affichent un message d'erreur. Dès lors que j'ôte la protection de ces feuilles, la macro refonctionne. Existe t'il une option pour protéger les feuilles et faire fonctionner les macros ?

Merci pour votre aide, bonne journée !

Bonjour

Oui il y a une option mais qui doit être remise à chaque ouverture du fichier

Sub test()
  Sheets("Feuil1").Protect UserInterfaceOnly:=True
End Sub

Extrait de l'aide

UserInterfaceOnly Argument de type Variant facultatif. Cet argument a la valeur True pour protéger l'interface utilisateur, mais pas les macros. Si cet argument n'est pas spécifié, la protection s'applique à la fois aux macros et à l'interface utilisateur

Notes

Si vous appliquez la méthode Protect et que l'argument UserInterfaceOnly a la valeur True dans une feuille de calcul et que vous enregistrez le classeur, l'intégralité de la feuille de calcul (et pas uniquement l'interface) sera protégée lors de la réouverture du classeur.Pour réactiver la protection de l'interface utilisateur après l'ouverture du classeur, vous devez de nouveau appliquer la méthode Protect avec la valeur True affectée à l'argument UserInterfaceOnly.

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+

Merci beaucoup pour vos deux réponses ! Cela fonctionne comme je le souhaite !

Veuillez m'excuser du temps de réponse mais hier j'étais débordé.

Merci pour votre aide, je vous souhaite une excellente journée.

Greg.

Rechercher des sujets similaires à "proteger feuille classeur affecter macro"