Protection et deprotection plusieurs feuilles sur un même classeur via macro

Martflo

XLDnaute Nouveau
Bonjour,

Je suis hyper nvice en maco et code VBA.
J'ai un fichier de 31 feuilles sur lequel j'ai dévérouillée certaines cellules qui pourront être modifiables. Ce fichier sera accessible par plusieurs personnse différentes et je ne veux pas qu'elles puissent faire de modification sur les cellules non dévérouillées.
Je souhaite protéger toutes les feuilles en une seule action (raccourci clavier) avec une demande de mot de passe et pouvoir remettre cette protection facilement (raccourci clavier) avec une demande de mot de passe aussi.
Genre boîte de dialogue : Mettre la protection - saisissez le mot de passe / Enlever le protection - saisissez le mot de passe.

J'ai essayer plusieurs codes mais je n'y arrive pas. La suppression de la protetion me donne toujours un message d'erreur :
1026801


Est-ce que quelqu'un peut m'aider pour cela ?

Merci pour votre grande aide.

Florine
 

Pièces jointes

  • Maquette.xls
    3.6 MB · Affichages: 22

Staple1600

XLDnaute Barbatruc
Re

@Martflo
Version de mon précédent code avec demande de mot de passe
Code:
Sub protéger()
protection True
End Sub
Sub déprotéger()
protection False
End Sub

Private Sub protection(VerrouFermé As Boolean)
Dim ws As Worksheet
MDP$ = InputBox("Saisir votre mot de passe!", "Identification")
For Each ws In Worksheets
  Select Case VerrouFermé
  Case True
  ws.Protect MDP$
  Case False
  ws.Unprotect MDP$
  End Select
Next
End Sub
 
Dernière édition:

JM27

XLDnaute Barbatruc
pour affecter une touche de raccourci à une macro déja crée
sur le menu développeur :
selectionner maro.
tu obtiens la liste des macro , selection sur celle qui t'intéresse et clic sur option et la tu as accès aux touches de raccourci
si tu as pas développeur tu vas dans fichier /options/personnaliser le ruban et tu sélectionnes développeur
 

Staple1600

XLDnaute Barbatruc
Re

@Martflo
Je n'ai pas eu ce message d'erreur lors de mes tests
Essaie faire un test sur un fichier vierge non protégé dans lequel tu copies mon code dans un module standard
Ensuite lance la macro nommée protéger, saisis un mot de passe
Normalement toutes les feuilles sont protégées
Ensuite lances la macro nommée déprotéger, saisis le mot de passe précédemment saisi
Normalement toutes les feuilles sont déprotégées.
 

Staple1600

XLDnaute Barbatruc
Bonsoir Jean-Marcel

En tenant compte de ta remarque, j'ai modifié ma macro ainsi
Code:
Sub protéger()
protection True
End Sub
Sub déprotéger()
protection False
End Sub

Private Sub protection(VerrouFermé As Boolean)
Dim ws As Worksheet
MDP$ = InputBox("Saisir votre mot de passe!", "Identification")
For Each ws In Worksheets
If ws.Visible Then
  Select Case VerrouFermé
  Case True
  ws.Protect MDP$
  Case False
  ws.Unprotect MDP$
  End Select
End If
Next
End Sub
 

JM27

XLDnaute Barbatruc
Bonjour
Ci joint une version plus complète de la protection avec deux userform.
J'ai volontairement affiché le mot de passe dans la cellule A1 pour parfaire la mise au point ( c'est un "parachute" en cas de pb)
dès la mise au point terminée , il faudra supprimer dans les deux userform les lignes correspondantes : elles sont signalées pour en faciliter la suppression
 

Pièces jointes

  • Protection et déprotection feuille.xlsm
    29.5 KB · Affichages: 17

Sacha1980

XLDnaute Nouveau
Bonjour
Ci joint une version plus complète de la protection avec deux userform.
J'ai volontairement affiché le mot de passe dans la cellule A1 pour parfaire la mise au point ( c'est un "parachute" en cas de pb)
dès la mise au point terminée , il faudra supprimer dans les deux userform les lignes correspondantes : elles sont signalées pour en faciliter la suppression
Hello JM27,

Merci pour les codes, c'est du bon boulot et cela résolve mon problème du coup.

Sacha.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 275
Messages
2 096 759
Membres
106 744
dernier inscrit
sshkm16