J'ai un classeur avec une vingtaine de feuilles que je cherche à protéger et à déprotéger rapidement.
J'ai trouvé une solution sur le forum mais on me propose une macro que voilà
Bonsoir à tous,
Un autre exemple pour protéger touts les feuilles d'un classeur en une seule fois :
Sub ProtectionToutesLesFeuillesMDP()
Application.ScreenUpdating = False
Dim Feuil As Worksheet
For Each Feuil In Sheets
Feuil.Protect Password:="chris"
Next Feuil
End Sub
et pour déprotéger :
Sub DeprotectionToutesLesFeuillesMDP()
Dim MyMtPss As String
MyMtPss = Application.InputBox("Mot de passe pour continuer")
If MyMtPss <> "chris" Then Exit Sub
MsgBox "Attention, toutes les feuilles vont être déprotégées"
Application.ScreenUpdating = False
Dim Feuil As Worksheet
For Each Feuil In Sheets
Feuil.Unprotect Password:="chris"
On Error GoTo Sortie
Suite:
Next Feuil
Exit Sub
Sortie:
MsgBox "La Feuille : " & Feuil.Name & " Est Protégée par UN AUTRE Mot de Passe"
GoTo Suite
End Sub
Ces 2 macros me servent dans un de mes fichiers et çà fonctionne impeccable. Merci à l'auteur dont j'ai oublié le nom mais je les avais trouvé sur ce forum.
Bonne soirée.
__________________
@+ sur le forum,
Christophe.
Cependant , je ne sais pas où ni comment faire pour mettre cette macro dans mon classeur. Faut il que je la mette dans une feuille en particulier, comment faire un bouton ??
J'ai mis sur le fichier joint les codes que tu as trouvé sur le Forum avec quelques petites modifications et avec ce que tu demande Soitunboutonquiprotègeetquideprotègeàvolonté
j'utilise également cette macro pour un de mes fichiers ( merci à ce forum), mais régulièrement certains de mes collègues oublient de reprotéger le fichier avant la fermeture,( il s'agit de fichiers horaires), y a t-il un moyen de faire cette protection automatiquement ? comment dois je m'y prendre
La partie gauche de ton ecran sera separee en 2 dans la hauteur.
Dans la partie haute tu vas boir les objets :
feuil1,feuil2,......Thisworkbook
ensuite tu as 'modules'
Tu double clique sur module pour afficher la liste des modules. Ensuite tu double clique sur le nom d'un module pour l'afficher
Pour ce qui nous interresse, tu double clique sur ThisWorkbook.
Dans la partie droite de la fenetre, tu as un rectangle blanc qui prend la plus grosse partie de l'ecran avec en haut 2 bombo
Dans celui de gauche c'est marqué (général), tu clique pour choisir workbook
dans le combo de droite tu choisis 'workbook_close'
ensuite, entre sub... et end sub, tu tapes le nom de ta macro qui protege
Bonjour à tous,
Je m'insinue dans ce fil.....
Trés bien cette macro je vais m'en servir en l'adaptant pour l'appli que j'essaye de faire suivant mes connaissances apprises ici sur le tas.
Mais , petite question :
Que rajouter au code et où pour que le MdP quand on le tape s'inscrive avec des **** ?
Et à quoi sert ce bout de code dont je n'ai pas trouvé l'utilité et comme j'aime bien comprendre ce que je fais ...............
""On Error GoTo Sortie
Suite:
Next Feuil
Exit Sub
Sortie:
MsgBox "La Feuille : " & Feuil.Name & " Est Protégée par UN AUTRE Mot de Passe"
Bonnes fêtes à vous tous et merci à ceux qui m'ont déja aidé
Cest vrai que c'est bien fait . Du bel ouvrage .......
mais je recherche plus simple si possible car comme je l'ai déja dit copier bêtement ne sert à rien .
J'aime bien comprendre ce que je fais, il n'y a que comme cela que l'on peut avancer.
Peut être la solution aprés les fêtes car peu de monde en ce moment sur le forum.............................
En attendant,
Meilleurs voeux à vous tous , les bénévoles qui nous ont aidés toute cette année passée et qui je pense ,vont continuer en 2007.
Courtillon
j'ai pas tout suivi, mais peut être une idée, utiliser une macro à l'ouverture du classeur qui protège toutes les feuilles mais permet d'utiliser d'autres macros sans avoir à protéger déprotéger...
utilisation de l'argument UserinterfaceOnly à "true", ensuite mettre un mot de passse sur le projet VBA.
Code:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Protect "Toto", , , , True
Next ws
End Sub
je suis sans doute à coté de la demande mais en tous cas bon réveillon à tous....