Macro protection feuille

Bonjour,

Comment faire pour rajouter un mot de passe à la macro suivante svp :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").Select

Columns("E:F").Select

Selection.EntireColumn.Hidden = True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Ce que je cherche, c'est que en plus de masquer les colonnes E et F, et de proteger la feuille, je veux mettre un mot de passe pour la protection de la feuille, de sorte qu'à la prochaine ouverture du fichier, il demande ce mot de passe pour lever la protection.

Merci.

Bonjour,

Ton code modifié.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Feuil2").Select
Columns("E:F").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="ton mot de passe", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Bonne journée.

Bonjour Ergotamine,

Je te remercie.

En fait je me rend compte qu'il faudrait rajouter une condition je pense :

apres Sheets("Feuil2").Select

Et avant Columns("E:F").EntireColumn.Hidden = True

Si la feuille est activée, il faut la désactiver,

Car lorsque la feuille est activée, cela crée un erreur

Merci

Bonjour,

Je ne connais pas la raison exacte mais je pense que comme le mot de passe est tapé au clavier, cette action n'est pas prise en compte pas l'enregistreur de macro.

Toutes les propriétés après .Protect sont en fait les valeurs des cases à cocher du verrouillage de ta feuille.

Le mot de passe, lui n'est pas défini par l'une de ces cases à cocher. Il faut le taper manuellement et l'enregistreur n'est probablement pas "branché" sur cette entrée. L'action de pression d'une touche au clavier est simulée par la propriété .SendKey.

Bonne journée.

Bonjour,

Je ne connais pas la raison exacte mais je pense que comme le mot de passe est tapé au clavier, cette action n'est pas prise en compte pas l'enregistreur de macro.

Toutes les propriétés après .Protect sont en fait les valeurs des cases à cocher du verrouillage de ta feuille.

Le mot de passe, lui n'est pas défini par l'une de ces cases à cocher. Il faut le taper manuellement et l'enregistreur n'est probablement pas "branché" sur cette entrée. L'action de pression d'une touche au clavier est simulée par la propriété .SendKey.

Bonne journée.

Merci pour la réponse

Bonjour,

J'ai trouvé je crois sans passer par if:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil2").Select

ActiveSheet.Unprotect Password:="12"

Columns("E:F").EntireColumn.Hidden = True

ActiveSheet.Protect Password:="12", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Merci Ergotamine

Rechercher des sujets similaires à "macro protection feuille"