Protection d'un classeur

Résolu/Fermé
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024 - 15 janv. 2022 à 13:41
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 11 mars 2022 à 12:05
Bonjour,

J'ai un classeur avec plusieurs feuilles de calcul, toutes mes feuilles son protégé pas un mot de passe.

Sauf que quand je dois y a porter des modification de doit tout re déverrouiller un par un ...

Et t'il possible de verrouiller mon classeur avec un seul mot de passe et non pas 20...?

Merci d'avance

13 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
15 janv. 2022 à 15:38
Bonjour

Possible avec une macro, exemple avec le mdp ABCDE pour protéger toutes les feuilles d'un coup :
Sub protection()
For n = 1 To Sheets.Count
Sheets(n).Protect "ABCDE"
Next
End Sub

Et la macro pour toutes les déprotéger d'un coup :
Sub deprotection()
mdp = InputBox("Mot de passe ?")
If mdp <> "ABCDE" Then
Exit Sub
Else
For n = 1 To Sheets.Count
 Sheets(n).Unprotect "ABCDE"
 Next
 End If
End Sub


Il faut mieux dans ce cas protéger aussi les macros par un mdp pour que personne ne puisse fouiner facilement dedans et trouver le mdp des feuiles
Pour cela dans l'éditeur VBA Aller dans Outils -Propriétés de VBA Project - Protection

Cdlmnt
Via
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
15 janv. 2022 à 17:00
Salut Via.

Bonjour mayou.
> Est-il nécessaire d'avoir 20 feuilles différentes dans ton classeur ?
> Est-il obligatoire que toutes les feuilles soient protégées ?
> Est-ce qu'une même modification doit être répétée dans chacune des 20 feuilles ?
Si je te pose toutes ces questions, c'est que je pense que la conception même de ton classeur pourrait être reconsidérée, par exemple en utilisant l'outil "Affichage personnalisée". Mais il faudrait qu'on sache comment sont organisées les différentes feuilles, ou carrément avoir accès à une copie de ton classeur, dans laquelle les données confidentielles auront été anonymées.
 1) Aller dans https://www.cjoint.com/ 
2) Cliquer sur [Parcourir] pour sélectionner le fichier (15 Mo maxi)
3) Défiler vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; faire un clic-droit dessus et choisir "Copier le lien"
5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Il existe aussi https://www.transfernow.net/

0
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024
19 janv. 2022 à 08:45
Bonjour via 55 et Raymond PENTIER,



Alors, oui, j'ai besoin de toutes les feuilles et les modifier toute aussi et donc toute les protéger.

Sauf si vous me trouvez quelque chose de plus simple auquel cas je suis preneuse :)



Voici mon fichier
https://www.cjoint.com/c/LAthSu5AxVp


Désoler pour mon retour tardif (je n'ai pas eu le temps de regarder.)



Pour ce qui est des macro, VBA... Je ne maîtrise pas du tout le sujet... Donc je vais chercher ce que tout cela veut dire ;)



Cordialement,
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
19 janv. 2022 à 15:32
Bonjour mayou.

Effectivement, dans un cas comme le tien, ce n'est pas simple du tout :
  • Si les destinataires de ton fichier doivent seulement le consulter sans rien pouvoir modifier, c'est facile : ton original n'a pas besoin de protection ; tu ne protèges que la copie qui sera diffusée.
  • S'ils sont autorisés à modifier les 25 feuilles, tu ne mets pas de protection de feuille, mais tu protèges le classeur pour éviter la suppression accidentelle d'une feuille

 Extraits de l'Aide en ligne d'Excel : Protection et la sécurité dans Excel
◾Vous ne devez pas supposer que le fait de protéger un classeur ou une feuille de calcul avec un mot de passe qui est sécurisé suffit- vous devez toujours penser à deux fois avant de distribuer des classeurs Excel qui peuvent contenir des informations personnelles sensibles telles que des numéros de cartes bancaires, réseaux sociaux Numéro de sécurité, identification de l’employé, etc..
◾La protection au niveau de feuille de calcul n’est pas destinée comme une fonctionnalité de sécurité. Il empêche simplement les utilisateurs de modifier les cellules verrouillées au sein de la feuille de calcul.
◾Niveau classeur: Vous pouvez verrouiller la structure de votre classeur en spécifiant un mot de passe. Verrouillage la structure du classeur empêche les autres utilisateurs de l’ajout, déplacer, supprimer, masquer et renommer des feuilles de calcul. Pour plus d’informations sur la protection des classeurs, voir Protéger un classeur.
  • Sinon il y a les macros ... mais tu devras te mettre à l'étude de la programmation en VBA !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié le 19 janv. 2022 à 15:50
Bonjour mayou

Ton fichier avec deux macros pour protéger et déprotéger :
https://www.cjoint.com/c/LAtoKY1GgoW

Les feuilles sont pour l'instant protégées avec le mot de passe mayou "planqué" dans la 1ere feuille (FEVRIER) en cellule AX3 puis colonne AX3 masquée. Pour le changer il suffit donc de modifier cette cellule AX3 après avoir déprotégé toutes les feuilles.

Raccourci clavier pour lancer la macro de deprotection Ctrl + d
Raccourci clavier pour lancer la macro de protection Ctrl +p

Par sécurité la macro de protection se lance automatiquement à la fermeture du classeur (pour le cas où l'on aurait oublié de reprotéger)

Clic droit sur un des onglets en bas puis cliquer sur Visualiser le code pour ouvrir l'éditeur Visual Basic puis dans l'arborescence aller dans Module1 pour voir les macros protection et deprotection ou aller sans This Workbook pour voir la macro à la fermeture du classeur

Cdlmnt
Via


0
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024
20 janv. 2022 à 07:55
Bonjour,

Un grand merci ! Je vais essayer de reproduire ce que vous avais fait sur un notre fichier pour voir si je comprends :)

Autre petite question ...

Sur mon fichier (le 1er ongle "FEVRIER") juste celui-là, il faut un peu plus d'autorisation voir ci-joint la capture d'encrant



Comment je fais pour modifier juste cet parti-là ?

Car sur le planning nous somme plusieurs a travailler dessus et nous devons pouvoir masquer ou insérer des couleur dans les cellules

merci pour votre retour :)
Cordialement.
0
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024
20 janv. 2022 à 09:20
Aussi et t'il possible d'avoir l'explication de votre formule ?

J'essaie de comprendre... Mais je ne comprends rien :s

Et si possible la marche à suivre pour que je puisse le refaire sur un autre dossier ;) Toute seul :)
Si ce n'est pas trop long pour vous, bien sûr ;)

Merci
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié le 20 janv. 2022 à 14:27
Bonjour

Il n'y a pas de formules mais uniquement des macros
J'ai rajouté des commentaires dans les macros pour mieux comprendre ce qu'elles font

Marche à suivre :
1) Le classeur étant ouvert, ouvrir l'éditeur VBA par clic droit sur un onglet puis Visualiser le code (ou par le raccourci clavier Alt + F11)
2) Dans le ruban de l'éditeur aller à Insertion puis Module, se rajoute alors dans l'arborescence de gauche Modules et Module1
3) Copier la macro de protection ci-dessous et la coller dans la page blanche du Module 1 (j'ai modifié la macro initiale pour tenir compte de ta demande d'autoriser lasélection cellules verrouillées et déverrouillées, le formatage de cellule et la mise en forme des colonnes)
Sub protection()
' récupère le mot de passe mis en cellule AX3 de la 1ere feuille du classeur
mdp = Sheets(1).Range("AX3")
' Protection de la 1ere feuille du classeur avec le mot de passe et en autorisant sélection cellules verrouillées et déverrouillées, le formatage de cellule et la mise en forme des colonnes
Sheets(1).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, Password:=mdp
    ActiveSheet.EnableSelection = xlNoRestrictions
  'Boucle sur les feuilles du classeur de la 2eme à la dernière
For n = 2 To Sheets.Count
' protège simplement chaque feuille avec le mot de passse
 Sheets(n).Protect mdp
 Next
End Sub

4) Copier la macro de deprotection ci-dessous et la coller en dessous de l'autre :
Sub deprotection()
' demande d'entrer un mot de passe
mdp = InputBox("Mot de passe ?", "Confirmation de déprotection")
'si ce mdp ne correspond pas à celui de la cellule AX3 de la 1ere feuille
If mdp <> Sheets(1).Range("AX3") Then
' alors on affiche ce message
MsgBox "Mot de passse invalide !"
Else
' sinon on boucle sur toutes les feuilles de la 1ère à la dernière et on les déprotège
For n = 1 To Sheets.Count
 Sheets(n).Unprotect mdp
 Next
 End If
End Sub

5) Dans l'arborescence de gauche double-clic sur This worrkbook puis dans la page blanche qui s'ouvre à droite copîer et coller la macro ci-dessous si on veut une reprotection automatique des feuilles à la fermeture du classeur :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'lance la macro protection
protection
End Sub

6) Fermer l'éditeur VBA et aller dans première feuille du classeur en cellule AX3 et y taper le mot de passe qui sera utilisé puis masquer la colonne AX
7) Dans le ruban aller dans Développeur puis dans Macros pour choisir une des 2 macros et la faire Exécuter. On peut aussi dans Macros après avoir choisi une macro aller dans Options pour attribuer à cette macro un raccourci clavier pour la lancer sans passer par le ruban

Cdlmnt
Via
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
20 janv. 2022 à 15:54
Bonjour.

Ton post #6 = "Comment je fais pour modifier juste cet parti-là ? "
Je ne comprends pas ta question : Dans la boite de dialogue que tu nous montres, c'est à toi de cocher les options que tu veux !
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
20 janv. 2022 à 17:42
Coucou Raymond ☺

Je pense que le demandeur me demandait comment modifier ma macro de protection des feuilles pour prendre en compte ces options
C'est ce que j'ai fait dans mon post #8
A voir ce qu'en dira mayou

Cdlmnt
Via
0
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024
21 janv. 2022 à 09:11
Bonjour Raymond et Via55,

Oui, c'est bien ce que Via55 a compris :)

Alors j'ai réussi à mettre la nouvelle macro et cela fonctionne parfaitement :D

Et donc j'ai voulu la reproduire sur un autre fichier...
La seule différence, c'est que j'ai mis le mot de passe en cellule K2 et NON MASQUER et j'ai mis 2021 comme code ...

J'ai fait attention dans la macro de changer ("AX3") en ("k2")

Mais à la fin, il me marque quand même "mots de passe invalide" ...

Y a-t-il un ordre a respecter l'or de l'insertion des macro ?
Dois-je obligatoirement marquer mon MDP dans une cellule ?

Cordialement,
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
21 janv. 2022 à 13:32
Bonjour

C'est apparemment du au fait que ton mdp est numérique
Pour pouvoir utiliser un mdp numérique ou alphabétique ou alphanumérique, dans la macro, après la ligne
mdp = InputBox("Mot de passe ?", "Confirmation de déprotection")

rajoute celle-ci :
If IsNumeric(mdp) Then mdp = Val(mdp)

cela devrait régler le problème

Ensuite il n'est pas obligatoire de masquer la cellule du mot de passe, je l'avais fait pour raison de sécurité afin que personne ne puisse voir le mot de passe

Cdlmnt
Via
0
mayou478 Messages postés 56 Date d'inscription jeudi 9 juillet 2020 Statut Membre Dernière intervention 2 janvier 2024
21 janv. 2022 à 13:54
OUIII !

Merci, cela fonctionne ! :D

Enfin fini de retaper le mot de passe 50X :)

Merci beaucoup pour ces explications et le temps passé

Très bonne journée à vous
0
DodoMichelle
8 mars 2022 à 07:26
Bonjour Via,

Je n'ai pas trouvé d'autres moyens pour te joindre!
J'espère que tu vas très bien.
J'ai un fichier test où j'ai voulu recopier ce que tu as fait sur celui de "mayou" mais les raccourcis CTRL+ D et CTRL+ P ne fonctionnent pas!
L'objectif final est de le réaliser sur le fichier pétanque que tu m'as construit!
Peux tu m'aider sur ce sujet ci dessous?
Cdlmnt
Dodo

https://www.cjoint.com/c/LCigyzwFmGK
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
11 mars 2022 à 12:05
Bonjour Dodo

Je trouve ton message en rentrant d’hospitalisation
Dans le fichier que tu m'as envoyé rien ne peut fonctionner car :

1) tu n'as pas attribué les raccourcis aux macros (Pour ce faire aller dans Développeur - Macros - choisir une macro puis Options et choisir le raccourci désiré)
2) tu n'as pas entré de mot de passe dans la cellule AX3 de la première feuille
A noter qu'on peut aussi, au lieu de rentrer le mot de passe dans une feuille, le rentrer "en dur" dans les macros, exemple avec mdp dodo:
 Sub protection()
mdp = "dodo"
For n = 1 To Sheets.Count
 Sheets(n).Protect mdp
 Next
End Sub

 Sub deprotection()
mdp = InputBox("Mot de passe ?", "Confirmation de déprotection")
If mdp <> "dodo" Then
MsgBox "Mot de passse invalide !"
Else
For n = 1 To Sheets.Count
 Sheets(n).Unprotect mdp
 Next
 End If
End Sub

Cdlmnt
Via
0