Protéger plusieurs feuilles d'un classeur [Fermé]

Signaler
-
Messages postés
12869
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 novembre 2020
-
Bonjour,

J'ai vu plusieurs possiblités (via marco) de protéger toutes les feuilles :

Sub protegetout()
For i = 1 To Sheets.Count
With Sheets(i)
.Protect Password:="jojo", DrawingObjects:=True, Contents:=True, Scenarios:=True
.EnableSelection = xlUnlockedCells
End With
Next
End Sub


Mais par contre il est impossible d'utiliser les filtres, de sélectionner une cellule qui est verrouillée...

Merci d'avance de votre aide,

3 réponses

Messages postés
12869
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 novembre 2020
2 076
Bonjour Emile

Pour pouvoir selectionner toutes les cellules tu supprimes la ligne
.EnableSelection = xlUnlockedCells

Pour autoriser le tri et le filtre tu completes ainsi l'instruction
.Protect Password:="jojo", DrawingObjects:=True, Contents:=True, Scenarios:=True , AllowSorting:=True, AllowFiltering:=True

Cdlmnt
Via
Super ! Ca fonctionne très bien
Merci beaucoup
Bonjour,

J'avais oublié un élément très important pour moi.
En effet dans ce classeur j'ai un userform et des macros, que je souhaiterai également protéger. Avec la macro si dessus les feuilles sont bien protégées mais on peut toutefois cliquer sur le bouton de contrôle qui lance l'userform...

Donc je souhaiterai bloquer le bouton de l'userform (feuil 1) en même temps que les feuilles, mais pouvoir moi cliquer sur le bouton de contrôle qui déprotège le classeur...

merci
Messages postés
12869
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
29 novembre 2020
2 076
Bonjour Emilie

Tu ne peux pas bloquer le bouton par contre tu peux au début de la macro qui lance l'UF faire afficher une boite de message qui demande un mot de passe et c'est seulement si le mdp est bon qu'on lance l'UF
exemple :
mp = InputBox("Entrer votre mot de passe", "Authentification")
If mp<>"jojo" then msgbox "Mot de passe non incorrect.Accès non autorisé" :exit sub
Userform1.show


Cdlmnt
Via