Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro protection

  • Initiateur de la discussion Initiateur de la discussion Tom32
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tom32

XLDnaute Occasionnel
Bonjour,

je cherche le moyen de réaliser une macro me permettant de protéger ou de déprotéger rapidement mes feuilles de calcul Excel, mais je ne vois pas comment faire. J'ai essayé que ma macro fasse les choses suivantes :
si ma feuille de calcul n'est pas protégée :
-quand j'éxécute un raccourci (Ctrl + R), une boite de dialogue s'ouvre (ou userform?)
-dans ce Userform, je pourrai cocher 3 options différentes : "sélectionner les cellules vérouillées"; "sélectionner les cellules dévérouillées" et "utiliser le filtre automatique".
-quand j'ai choisi les options, je clique sur le ok du userform.
-ma feuille se vérouille alors, avec un code (entré dans la macro : toujours le même) selon les options que j'ai choisi précédement. Si j'ai coché utiliser le filtre, alors l'option Allowfiltering = True...

Si jamais ma feuille est déja protégée :
-en utilisant le même raccourci clavier (Ctrl + R), la macro déprotège la feuille en utilisant le même code que précédemment (de même entré dans la macro).

Voila c'est peut être un peu compliqué à faire, mais je ne vois pas du tout comment je pourrai m'y prendre pour réaliser cette macro.
Quelqu'un peut il m'aider ??

Merci d'avance
 
Re : Macro protection

Bonjour Tom, bonjour le forum,

C'eût été juducieux de joindre ta macro.....

tu pourrais déprotéger tes onglets à l'initialisation de l'UserForm et les reprotéger à la validation du bouton Ok.
 
Re : Macro protection

La macro que j'ai actuellement est la suivante (c'est une de celles que vous m'avez concocté) :
Code:
Sub de_et_reproteger()
With ActiveSheet
If .ProtectContents Then
.Unprotect ("[COLOR="Red"]code de protection[/COLOR]")
Else
.Protect ("[COLOR="Red"]code de protection[/COLOR]"), AllowFiltering:=True
End If
End With
End Sub

Cette macro ne me convient pas car elle pose quelques problèmes techniques et elle ne me permet pas de choisir les différentes options exposées précedemment (seléectionner cellules (dé)vérouillé).

J'aimerais donc une macro foctionnant sur la même base mais avec un userform me permettant de choisir les différentes options
 
Re : Macro protection

J'ai fait un essai : j'ai créer le user form et le module permettant de le charger.

Il ne me reste qu'un truc à faire (le plus dur). quand je clique sur le bouton ok, il faudrait que je puisse protéger ma feuille en fonction des 3 paramètres choisis dans le user form.

Quel code dois entrer ? je suis un peu pommé là j'avoue, il doit falloir entrer des If, ... mais je ne sais pas comment faire

Merci de votre aide
 

Pièces jointes

Re : Macro protection

Bonjour



A tester
Code:
Private Sub Ok_Click()
If cell_déver = True Then
With ActiveSheet
    .Protect
    .EnableSelection = xlUnlockedCells
End With
End If
If cell_ver = True Then
With ActiveSheet
    .Protect
    .EnableSelection = xlLockedCells
End With
End If
Me.Hide
End Sub
Reste le cas du filtre automatique
 
Re : Macro protection

Il y a de ça, mais ton code ne marche pas si je ne veux pas pouvoir sélectionner ni les céllules vérouillées ni les cellules dévérouillées
 
Dernière édition:
Re : Macro protection

Si je veux que personne ne puisse sélectionner une seule des cellules dans la feuilles. Alors je décoche les options "sélectionner les cellules vérouillées" et "sélectionner les cellules dévérouillées". Seulement dans le code que tu as fait ne prend pas en compte cette possibilité.

j'ai réussi à intégrer le cas du filtre avec ce code, est ce que ça te semble bon ?

Code:
Private Sub Ok_Click()
If cell_déver = True Then
With ActiveSheet
    .Protect ("code")
    .EnableSelection = xlUnlockedCells
End With
End If
If cell_ver = True Then
With ActiveSheet
    .Protect ("code")
    .EnableSelection = xlLockedCells
End With
End If
If Me.use_filter = True Then
With ActiveSheet
    .Protect ("code"), AllowFiltering:=True
End With
End If
Me.Hide
End Sub
 
Re : Macro protection

En fait il faudrait pouvoir rajouter les lignes de codes suivantes, mais j'ai fait une erreur parce que ça ne fontionne pas :

Code:
If Me.cell_ver = False And Me.cell_déver = False Then
With ActiveSheet
    .Protect ("code")
    .DisableSelection = xlUnlockedCells
    .DisableSelection = xlLockedCells
End With
End If
 
Re : Macro protection

Re



Une cellule est soit vérouillée
(Format/Cellule/Protection/ Vérouillée [cochée]

Une cellule est soit dévérouillée
(Format/Cellule/Protection/Vérouillée [décochée]

Je ne comprends donc pas ta logique
 
Re : Macro protection

Oui en effet tu n'as pas tort.

C'est juste que dans certaines feuilles, j'ai des cellules dévérouillées et des cellules vérouillées et je ne veux pourtant pas qu'on puisse sélectionner les cellules dévérouillées.

C'était pour copier la boite de dialogue d'Excel (dans laquelle on peut décocher les 2 options sélectionner les cellules vérouillées et dévérouillées).

Avec ce Userform, si les gens ne veulent pas pouvoir sélectionner une seule des cellules, ils sont obligés de cocher la case "sélectionner les cellules dévérouillées" dans le Userform, c'est pas très intuitif.

J'essaie de me faire comprendre mais c'est pas spécialement facile à expliquer
 
Re : Macro protection

oui je les ai regardées, elles ne m'apportent pas beaucoup d'informations.
Tant pis pour ce dont je viens de te parler, j'expliquerai aux gens utilisant la macro les différentes manoeuvres à effectuer.

En fait si j'abandonne cette histoire, c'est parce que je viens de me rendre compte d'un problème de taille :
une fois que j'ai protégé ma feuille avec les options voulues, je ferme mon fichier puis je l'enregistre. Et quand je l'ouvre à nouveau, les options de protection que j'avais choisi ne sont plus les mêmes. Par exemple si j'avais choisi de ne pas pouvoir sélectionner les cellules vérouillées, quand je re-ouvre mon fichier, je peux sélectionner les cellules vérouillées (même si elles sont toujours protégée).
Ceci est très embêtant, essaie tu vas voir.

Comment résoudre ce problème ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
  • Question Question
Réponses
8
Affichages
950
Réponses
7
Affichages
1 K
A
Réponses
2
Affichages
775
Arch974
A
M
Réponses
2
Affichages
2 K
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…