macro pour protéger par mot de passe toutes les feuilles d'un classeur

le yonnais

XLDnaute Junior
- bonsoir , je souhaiterais savoir si , il est possible de mettre en place une macro pour protéger automatiquement toutes les feuilles de n'importe quel classeur excel par mot de passe en même temps , ceci pour éviter de protéger les feuilles une par une .
- j'ajoute que je n'ai aucune connaissance en la matiére . Merci a vous ;
:confused:
 

le yonnais

XLDnaute Junior
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

- bonsoir staple1600 , j'ai enfin réussi a mettre en fonction ta macro que tu m'as indiqué au #12 ;
j'ai même pu rajouter une feuille " feuil1" avec dessus 2 boutons : protéger les feuilles / déprotéger les feuilles ;
- ce que je voudrais faire , c'est rajouter un mot de passe sur le bouton ( déprotéger les feuilles ) , ce que je ne sais pas faire malgré tes indications . peux tu m'aider ?
- Merci d'avance .
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Bonsoir à tous


Tu peux essayer un truc dans ce genre
Code:
Private Sub CommandButton1_Click()
'bouton déprotection
Dim mdp
mdp = InputBox("Mot de passe pour déprotéger la feuille", "SECURITE ILLUSOIRE", "Saisir ici le mot de passe requis")
Select Case mdp
Case Is = "Ummagumma"
Call deprotection
Case Else
Exit Sub
End Select
End Sub
Code:
Sub deprotection()
verrou "ouvert"
End Sub
Code:
Sub verrou(etat As String)
Dim ws As Worksheet
For Each ws In Worksheets
Select Case etat
Case Is = "ouvert"
ws.Unprotect
Case Is = "fermé"
ws.Protect
End Select
Next ws
End Sub
 

le yonnais

XLDnaute Junior
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

- bonsoir , il faut que je refasse toute la macro ? sinon , je ne vois d'indications concernant la "feuil1" où se trouvent les boutons de protection / déprotection pour rentrer le mot de passe , c'est normal ?
-Merci .
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re

Ce n'est pas du clé en main que le code VBA de mon précédent message
C'est censé être simplement une source d'inspiration.
Faut que tu mettes encore les mains dans le cambouis ;)

Comme je ne sais pas à quoi ressemble ton code actuel, j'ai simplement modifié le code de mon précédent message.

As-tu compris le fonctionnement du code du CommandButton avec l'inputBox ?
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re

Dans ce cas, et comme tu dis avoir ajouté un bouton
C'est ce code (le même que dans le précédent message) qu'il dédié à ce bouton
(clic-droit sur le bouton -> Visualiser le code)
et là faire le copier/coller
Code:
Private Sub CommandButton1_Click()
'bouton déprotection
Dim mdp
mdp = InputBox("Mot de passe pour déprotéger la feuille", "SECURITE ILLUSOIRE", "Saisir ici le mot de passe requis")
Select Case mdp
Case Is = "Ummagumma"
Call deprotection
Case Else
Exit Sub
End Select
End Sub

PS: tu auras noté que la macro verrou protége/déprotége toutes les feuilles du classeur.
Donc il faudrait la modifier si elle doit traiter des feuilles spécifiques.
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re


Si tu utilises mon code, cette macro protége toutes les feuilles du classeur.
Sub protection()
verrou "fermé"
End Sub

Si tu veux avoir le choix des feuilles à protéger, il faut que je modifie mon code en conséquence.

J'y vais de ce pas ;)
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re

Donc voici la version modifiée de verrou pour protéger la feuille de son choix.
Code:
Sub verrou(nfeuille As String, etat As String)
Select Case etat
Case Is = "ouvert"
Sheets(nfeuille).Unprotect
Case Is = "fermé"
Sheets(nfeuille).Protect
End Select
End Sub
Code:
Sub testProtegerFeuille1()
'ici on ne protége que la feuille nommée Feuil1
verrou "Feuil1", "fermé"
End Sub

Mais je viens de me rappeler (ou plutôt relire) que le titre de ta discussion parle de protéger toutes les feuilles d'un classeur.
Dans ce cas, il faut utiliser la première version de verrou
 

le yonnais

XLDnaute Junior
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

- je suis vraiment désolé , mais je ne comprends pas , pour affecter une macro au bouton " protéger les feuilles " que j'ai mis sur la "feuil1" , là oû j'ai mis le bouton "déprotéger les feuilles" ,la macro que tu édité au post#18 suffit ? parce que si j'affecte la même macro pour le bouton "protéger les feuilles" , ça ne fonctionne pas .
 

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re

Postes ici le fichier avec les dernières modifs que tu as faites, je te dirais où cela coince.

PS: Le code CommandButton1-Click peut être utilisé pour les deux boutons
(à condition de faire les changement adéquats)
  • Pour le bouton protection il faut mettre
call protection


  • Pour le bouton déprotection il faut mettre
call deprotection

C'est bien ce que tu as fait?
 
Dernière édition:

le yonnais

XLDnaute Junior
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

- re , pour faire plus simple , je t'envoie le fichier ; au vu de ton dernier post , je crois que je me suis planté grave , mais il y a circonstances atténuantes , c'est la premiére fois depuis que j'utilise excel que je mets en place une macro , c'est dire...
 
Dernière modification par un modérateur:

Staple1600

XLDnaute Barbatruc
Re : macro pour protéger par mot de passe toutes les feuilles d'un classeur

Re


Tu as inséré des boutons de la barre d'outils Formulaire
(alors que j'ai utilisé des CommandButton de la barre d'outils Contrôles)

Je modifie les codes en conséquence et te les poste ici dans la foulée.
 

Discussions similaires

Réponses
2
Affichages
231
Réponses
5
Affichages
481
Compte Supprimé 979
C
Réponses
20
Affichages
330

Statistiques des forums

Discussions
312 747
Messages
2 091 605
Membres
105 007
dernier inscrit
adla