Bloquer feuille par mdp qui contient une macro

Fermé
Candy - 22 avril 2022 à 10:44
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 22 avril 2022 à 11:54
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 jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 avril 2022 à 11:03
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
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 jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
22 avril 2022 à 11:54
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