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

- - Dernière réponse : via55
Messages postés
11374
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 novembre 2019
- 25 mai 2016 à 13:01
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,
Afficher la suite 

3 réponses

Messages postés
11374
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 novembre 2019
1518
0
Merci
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
0
Merci
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
11374
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 novembre 2019
1518
0
Merci
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