Bloquer feuille par mdp qui contient une macro

Candy -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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..
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 ☺

Configuration: Windows / Firefox 91.0
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,


Sub protege()
ActiveSheet.Protect Password:="azerty", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
End Sub
Sub deprotege()
 ActiveSheet.Unprotect ("azerty")
End Sub

0
Candy
 
Bonjour cs_Le Pivert ☺
merci pour votre réponse rapide !
malheureusement la débutante que je suis n'y arrive pas...
voilà comment je l'ai tapé :

Sub protege()
ActiveSheet.Protect Password:="azerty", DrawingObjects:=True, contents:=True, Scenarios:=True, AllowFiltering:=True
End Sub
Private Sub Feuil1_Open()
Dim f As Integer
For f = 6 To 1000
If Cells(4, f) < Date Then
Cells(4, f).EntireColumn.Hidden = True
Else
Cells(4, f).EntireColumn.Hidden = False
End If
Next f
End Sub
Sub deprotege()
ActiveSheet.Unprotect ("azerty")
End Sub

mais cela ne fait que protéger ma feuille et plus cacher les colonnes que je ne souhaite plus voir...

je ne dois pas l'écrire correctement... où pas au bon endroit... tout est dans ma "feuil1 (suivi délais) et pas dans this workbook. il faut que je change ?

Merci de votre aide
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
A mettre dans le module de la feuille concernée

Se déclenche au changement de feuille

Option Explicit
Private Sub Worksheet_Activate()
Feuil1_Open
protege
End Sub
Sub protege()
ActiveSheet.Protect Password:="azerty", DrawingObjects:=True, contents:=True, Scenarios:=True, AllowFiltering:=True
End Sub
Private Sub Feuil1_Open()
Dim f As Integer
For f = 6 To 1000
If Cells(4, f) < Date Then
Cells(4, f).EntireColumn.Hidden = True
Else
Cells(4, f).EntireColumn.Hidden = False
End If
Next f
End Sub
Sub deprotege()
ActiveSheet.Unprotect ("azerty")
End Sub



voilà

@+
0