Niveau de protection selon le mot de passe

  • Initiateur de la discussion Initiateur de la discussion 962
  • 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 !

9

962

Guest
Bonjour,

J'ai un fichier excel avec une dizaine d'onglet, j'ai des collaborateurs qui ont besoin des données seulement tout le monde ne peut pas tout voir !
Alors est il possible selon un mot de passe défini de ne faire apparaitre uniquement les onglets nécessaire ?
 
Re : Niveau de protection selon le mot de passe

Bonjour 962 🙂,
J'ai un fichier excel avec une dizaine d'onglet, j'ai des collaborateurs qui ont besoin des données seulement tout le monde ne peut pas tout voir !
Alors est il possible selon un mot de passe défini de ne faire apparaitre uniquement les onglets nécessaire ?
Oui c'est possible. Regarde les discussions en bas à gauche de ton fil, ou fait une recherche sur "coffre fort" 😛.
Mais s'il s'agit réellement de données confidentielles, dis-toi que aucun fichier Excel n'est assez protégé 😀... Et que toute protection ne résiste qu'à certaines blondes, et encore, et généralement pas longtemps 🙄...
Bon courage 😎
 
Re : Niveau de protection selon le mot de passe

Bonjour 962, salut Jean-Noël,

Oui c'est possible en VBA. Voici un exemple.

1) Ajouter une 1ère page et nommez-la "Accueil", vous y mettez ce que vous voulez.

2) Vous mettez en cellule A1 de chaque feuille (sauf Accueil) le mot de passe permettant de l'afficher.

3 ) Allez dans VBA (Alt+F11) et dans Thisworkbook entrez ces 2 macros :

Code:
Private Sub Workbook_Open()
Dim mdp As String, w As Worksheet
mdp = InputBox("Entrez votre mot de passe", "Mot de passe")
If mdp = "" Then Exit Sub 'ou Me.Close
For Each w In Worksheets
  If w.[A1] = mdp Then w.Visible = True
Next
Me.Saved = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim test As Boolean, w As Worksheet 
test = Me.Saved
Sheets("Accueil").Visible = True
For Each w In Worksheets
  If w.Name <> "Accueil" Then w.Visible = xlVeryHidden
Next
Me.Saved = test
End Sub

4) Dans VBA menu Outils => Propriétés de VBAProject => Protection et entrez votre mot de passe.

PS : dans l'InputBox on peut ne faire apparaître que des *, voyez la fin ce fil :

https://www.excel-downloads.com/threads/macro-mot-de-passe.150224/

A+
 
Dernière édition:
Re : Niveau de protection selon le mot de passe

Bonjour 962,

salut JNP et job75

Un autre exemple :

1- A l'ouverture du classeur, toutes les feuilles sont masquer "Dur".

2- Dans la page "Accueil", le bouton d'accès aux feuilles pour plusieurs utilisateurs, chacun d'eux ayant son mot de passe qui sera reconnu comme tel.

3- Selon le mot de passe inscrit, à noter qu'il est caché à la saisie, les feuilles seront ouvertes ou non.

4- Dans l'exemple, le mot de passe "Pierre" ouvre les feuilles "A" et "B", le mot de passe "Paul" ouvre les feuilles "C" et "D", le mot de passe "Jacques" ouvre les feuilles "A", "B", "C" et "D".

5- La page "Accueil" n'est pas protégée, ni le VBA project.
 

Pièces jointes

Re : Niveau de protection selon le mot de passe

J'ai regardé un peu les liens et j'ai fait des recherche avec le mot coffre fort ou protection mais je ne trouve pas mon besoin ! ou alors c'est trop compliqué pour moi et je n'y comprend rien ! 😱
je voudrais juste au moment d'ouvrir le fichier qu'un mot de passe soit demandé et que cela ouvre le fichier mais avec des onglets bien défini !

Sur le fait de protéger, oui j'en suis sur je dois le protéger, ceci dit oui je suis d'accord on a toujours moyen de trouver les mot de passe avec un ptit fichier en VBA, mais faut déja bien maitriser le sujet, sinon faut installer un ptit programme hors sans les droit administrateur c'est impossible.Cela complique les choses pour retrouver le mot de passe.

A+
 
Re : Niveau de protection selon le mot de passe

j'avais pas vu vos post !
Je trouve ça nikel comme principe avec cette page d'acceuil !
maintenant le plus dur ça va être de l'integrer à mon fichier !!
j'essaye jvous tiens au courant !!

A+
 
Re : Niveau de protection selon le mot de passe

j'ai essayé la solution de job75,
au moment de l'ouverture tout les onglets sont visible et que je rentre ou pas le mot de passe j'ai accès à tout !
Et lorsque je ferme une fenetre de debogage et me dit "erreur d'exécution "9" l'indice n'appartient pas à la selection "

qu'est ce que j'ai mal fait ?
 
Re : Niveau de protection selon le mot de passe

La solution de Cbernardt me plait bien aussi par contre je n'ai aucune idée de la manière de l'integrer à mon fichier,
j'ai regardé un peu dans le code mais j'y comprend rien !!😀
 
Re : Niveau de protection selon le mot de passe

Re,

Je ne sais pas ce que vous avez fait, mais moi j'ai voulu faire du zêle avec les Me.Saved, c'était une erreur.

Prenez donc ces macros :

Code:
Private Sub Workbook_Open()
Dim mdp As String, w As Worksheet
mdp = InputBox("Entrez votre mot de passe", "Mot de passe")
If mdp = "" Then Exit Sub 'ou Me.Close
For Each w In Worksheets
  If w.[A1] = mdp Then w.Visible = True
Next
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim w As Worksheet
Sheets("Accueil").Visible = True
For Each w In Worksheets
  If w.Name <> "Accueil" Then w.Visible = xlVeryHidden
Next
[COLOR="Red"]Me.Save[/COLOR]
End Sub

Attention, le fichier sera toujours enregistré automatiquement à la fermeture.

Edit : attention au nom de la page Accueil, il faut l'écrire exactement ainsi, sans fautes d'orthographe...

A+
 
Dernière édition:
Re : Niveau de protection selon le mot de passe

j'ai réecris correctement "accueil" et avec votre nouvelle macro ça fonctionne.
Par contre on ne peut pas revenir en arrière pour retaper un mot de passe.
Et comment je peux faire pour que moi je fasse tout apparaitre avec mon mot de passe ?
 
Re : Niveau de protection selon le mot de passe

Re,

Voilà deux bonnes questions qui montrent que vous êtes dans le coup.

Remplacez la 1ère macro par celle-ci :

Code:
Private Sub Workbook_Open()
Dim mdp As String, w As Worksheet, flag As Boolean
1 mdp = InputBox("Entrez votre mot de passe", "Mot de passe")
If mdp = "" Then Exit Sub 'ou Me.Close
For Each w In Worksheets
  If mdp = "toto" Or w.[A1] = mdp Then w.Visible = True: flag = True 'toto = mot de passe administrateur
Next
If Not flag Then GoTo 1
End Sub

Remplacez "toto" par votre mot de passe.

A+
 
Re : Niveau de protection selon le mot de passe

Bonsoir

J'ai un fichier excel avec une dizaine d'onglet, j'ai des collaborateurs qui ont besoin des données seulement tout le monde ne peut pas tout voir !
Alors est il possible selon un mot de passe défini de ne faire apparaitre uniquement les onglets nécessaire ?

Pourquoi ne pas diffuser un classeur ne contenant que les données nécessaires à tes collaborateurs ?


PS : je plussoie au propos de JNP concernant la sécurité illusoire fournie par Excel.
Et il n'est pas besoin de logiciel tiers à installer pour déprotéger un classeur
(du code VBA et/ou Windows suffisent ).

Un collaborateur acharné et curieux saura s'il accès au net trouver comment rendre ta tentative de protection inopérante.
(D'où la question qui commence ce message 😉 )
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
384
Réponses
17
Affichages
879
Réponses
4
Affichages
321
Retour