XL 2013 Bloquer feuille qui contient une macro par mdp

CandyL

XLDnaute Nouveau
Bonjour,
après voir cherché sur le forum, je préfère finalement poser ma question car je ne trouve pas vraiment une réponse... malgré que j'ai vu plusieurs questions qui se ressemblent... et je débute en VBA alors...
Je souhaite bloquer par mot de passe une feuille excel (avec comme seule possibilité d'utiliser les filtres qui s'y trouvent).
Cette feuille de calcul est un calendrier. J'y ai enregistré cette macro pour que les colonnes avant la date du jour se cachent automatiquement :
Private Sub Feuil1_Open()
Dim f As Integer
For f = 6 To 1000
If Cells(4, f).EntireColumn.Hidden = True
Else
Cells(4, f).EntireColumn.Hidden = False
End If
Next f
End Sub

Mais je ne trouve pas comment protéger cette feuille.... je pensais faire une autre macro avec :
Activesheet.Unprotect "mdp"
Activesheet.protect "mdp"

Mais je ne sais pas faire...

Quelqu'un pourrait m'aider svp ??

un grand merci de la néophyte que je suis ☺
 

Phil69970

XLDnaute Barbatruc
Bonjour @CandyL

Le principe général :

VB:
'1er cas on gère toutes les feuilles en même temps
Sub Blocage() 'Protege toutes les feuilles en même temps
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Protect "toto"   '(MdP à adapter)
Next ws
End Sub

Sub Deblocage() 'Déprotege toutes les feuilles en même temps
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Unprotect "toto"   '(MdP à adapter)
Next ws
End Sub


'************
'2eme cas on gère feuille par feuille
Sub blabla()
'On déprotège LA feuille et seulement celle que l'on souhaite (nom de la feuille à adapter)
Worksheets("Feuil1").Unprotect Password:="toto"   '(MdP à adapter)

'On exécute le code....
'blablabla

'On reprotège LA feuille (nom de la feuille à adapter)

Worksheets("Feuil1").Protect Password:="toto", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFiltering:=True '(MdP à adapter)
End Sub

Le plus fréquent est de faire avec la solution 2 car si tu as 20 feuilles il est inutile de traiter les 20 feuilles si tu dois intervenir que sur une feuille....

*Pour info :
1)Avant de te lancer dans la protection/déprotection assure toi que ton code fonctionne correctement
2)Pense bien qu'excel offre une protection illusoire.

*Merci de ton retour

@Phil69970
 

Discussions similaires