Bloquer feuille par mdp qui contient une macro

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

2 réponses

  1. Contributeur
    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
    1. 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
      1. Contributeur
        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