Niveau de protection selon le mot de passe

962

XLDnaute Junior
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 ?
 

JNP

XLDnaute Barbatruc
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" :p.
Mais s'il s'agit réellement de données confidentielles, dis-toi que aucun fichier Excel n'est assez protégé :D... Et que toute protection ne résiste qu'à certaines blondes, et encore, et généralement pas longtemps :rolleyes:...
Bon courage :cool:
 

job75

XLDnaute Barbatruc
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:

CBernardT

XLDnaute Barbatruc
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

  • DeproFeuillesSelonPasswordV1.xls
    44 KB · Affichages: 116

962

XLDnaute Junior
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 ! :eek:
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+
 

962

XLDnaute Junior
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+
 

962

XLDnaute Junior
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 ?
 

962

XLDnaute Junior
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 !!:D
 

job75

XLDnaute Barbatruc
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:

962

XLDnaute Junior
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 ?
 

job75

XLDnaute Barbatruc
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+
 

Staple1600

XLDnaute Barbatruc
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 ;) )
 

nat54

XLDnaute Barbatruc
Re : Niveau de protection selon le mot de passe

Bonjour

Je ne suis pas blonde et pourtant :D je n'arrive pas à reproduire le mode opératoire ... or ce sujet m'intéresse
 

Pièces jointes

  • Classeur4.xls
    20 KB · Affichages: 74
  • Classeur4.xls
    20 KB · Affichages: 69
  • Classeur4.xls
    20 KB · Affichages: 79

Discussions similaires

Réponses
2
Affichages
210
Réponses
46
Affichages
1 K

Statistiques des forums

Discussions
312 500
Messages
2 089 010
Membres
104 004
dernier inscrit
mista