Mot de passe sur onglet EXCEL

kynes

XLDnaute Nouveau
Bonjour à tous,

Je cherche à insérer un mot de passe sur un onglet Excel, exemple, j'ai mon fichier "Kynes" qui comprend les Feuille1, Feuille2, Feuille3. Pour des questions de confidentialité je veux que seulement Mr "A" accède à la Feuille1, que Mr "B" accède à la feuille2, que Mr "C" accède à la feuille3...Voila, j'ai + ou - 30 onglets à créer car 30 personnes dans mon groupe de travail.

Je suis preneur pour toute proposition

Merci
 

macsscam

XLDnaute Junior
Re : Mot de passe sur onglet EXCEL

Bonjour kynes, le forum,

Je ne connais pas de réponse qui puisse résoudre ton problème, voici quand même quelques éléments :
  • avec les outils Excel, il est possible de protéger un onglet contre les modifications mais pas contre l'affichage (Outils > Protection > Protéger la feuille...)
  • il est possible d'utiliser les utilisateurs d'un AD pour gérer les droits sur un classeur (Outils > Protection > Permettre aux utilisateurs de modifier des plages)
  • tu pourrais utiliser du vba en mettant tes mots de passe en dur dans le code. Quelques limites néanmoins :
    - les macros événementielles (genre Workbook_SheetChange) n'empêchent pas en cliquant sans lâcher (par exemple) de voir le contenu d'un onglet​
    - sauf paramétrage idoine du poste de travail, il est toujours possible de récupérer le fichier et de lire le contenu​
    - il faut chiffrer le vba pour que les mots de passe ne soient pas en clair​
    - ouvrir le fichier sous Open Office Calc permet de lire le contenu​

Pour que nous puissions t'aider, il faudrait préciser ton besoin pour que nous puissions trouver comment faire.
Par ailleurs, <mon avis perso> si la confidentialité est importante, n'utilise pas de fichiers Excel pour faire cela. </mon avis>

Bon courage,
Cordialement,

--
macsscam
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Bonjour kynes, bienvenue sur XLD,

Voici une solution sans mot de passe :)

1) Créez une 1ère feuille "Accueil" (elle sera protégée, avec votre mot de passe) sur laquelle vous écrivez en gros :

SEUL UN UTILISATEUR REPERTORIE PEUT UTILISER CE FICHIER

LES MACROS DOIVENT ÊTRE ACTIVEES


2) Donnez aux onglets suivants le nom (Windows) de chaque utilisateur (y compris vous).

3) Allez dans VBA (Alt+F11) et dans ThisWorkbook entrez les 2 macros :

Code:
Private Sub Workbook_Open()
On Error Resume Next
Sheets(Environ("Username")).Visible = True 'affiche la feuille de l'utilisateur
If Err = 0 Then Sheets(1).Visible = xlVeryHidden 'masque la 1ère feuille ("Accueil")
ThisWorkbook.Saved = True 'évite le message à la fermeture du fichier s'il n'y a plus de modifications
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
Dim n As Byte
Application.ScreenUpdating = False
Sheets(1).Visible = True 'affiche la 1ère feuille ("Accueil")
For n = 2 To Sheets.Count
  Sheets(n).Visible = xlVeryHidden 'masque les autres feuilles
Next
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub

Notez que le fichier se ferme dès qu'on enregistre les modifications.

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

Edit : salut macsscam

A+
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re,

Si vous voulez utiliser des noms d'utilisateurs différents de Environ("Username"), attribuez des pseudos pas trop évidents et pour la 1ère macro écrivez (dans ThisWorkbook) :

Code:
Private Sub Workbook_Open()
Dim U As String
U = InputBox("Entrez votre nom d'utilisateur :", "Utilisateur")
If U = "" Then GoTo 1
On Error Resume Next
Sheets(U).Visible = True 'affiche la feuille de l'utilisateur
If Err Then
  MsgBox "Utilisateur non répertorié..."
Else
  Sheets(1).Visible = xlVeryHidden 'masque la 1ère feuille ("Accueil")
  ThisWorkbook.Saved = True 'évite le message à la fermeture du fichier s'il n'y a plus de modifications
  Exit Sub
End If
1 If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub

A+
 
Dernière édition:

kynes

XLDnaute Nouveau
Re : Mot de passe sur onglet EXCEL

Merci job75, cela fonctionne vraiment très très bien, c'est vraiment ce que je souhaitais, néanmoins un détail si cela était possible, avec mon identifiant est il possible de voir l'ensemble des onglets ?
 

macsscam

XLDnaute Junior
Re : Mot de passe sur onglet EXCEL

Bonjour job75, kynes,

Merci job75, la prochaine fois, je réfléchirai à deux fois avant de dire que c'est compliqué ou peu faisable.

Pour répondre à la question de kynes, on peut ajouter un petit test sur l'utilisateur et utiliser le code suivant :

Code:
Dim wSheet As Worksheet

For Each wSheet In Worksheets
	wSheet.Visible = True 'affiche la feuille
Next wSheet

Du coup, dans le code de job75, cela donnerait :
Code:
Private Sub Workbook_Open()
Dim U As String
Dim wSheet As Worksheet
U = InputBox("Entrez votre nom d'utilisateur :", "Utilisateur")
If U = "" Then GoTo 1
On Error Resume Next

If U = "kynes" then
    For Each wSheet In Worksheets
   	  wSheet.Visible = True 'affiche la feuille
    Next wSheet
Else
    Sheets(U).Visible = True 'affiche la feuille de l'utilisateur
    If Err Then
      MsgBox "Utilisateur non répertorié..."
      GoTo 1
    Else
      Sheets(1).Visible = xlVeryHidden 'masque la 1ère feuille ("Accueil")
      ThisWorkbook.Saved = True 'évite le message à la fermeture du fichier s'il    n'y a plus de modifications
    Exit Sub
    End If
1 If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Permet de masquer tous les onglets sauf le premier (Accueil)
Dim wSheet As Worksheet

   For Each wSheet In Worksheets
	wSheet.Visible = xlVeryHidden 'masque la feuille
   Next wSheet

   Sheets(1).Visible = True   'affiche l'onglet d'accueil
End Sub

Il pourrait être souhaitable de créer un login très complexe au lieu de "kynes" et/ou d'ajouter un mot de passe.
A moins que je n'ai raté quelque chose ou que job75 ait (une fois de plus) une excellente idée,

Bon courage,

[Edit :] Désolé, j'avais mal regardé le code de job75 qui intervenait en BeforeSave plutôt qu'en BeforeClose. Du coup, inutile de reprendre mon code sur le before close...
--
macsscam
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Bonjour kynes, macsscam, job75, le fil, le forum


Juste une petit piqure de rappel en plus de ce qu'indiquait macsscam à 14h59

Il suffit d'ouvrir le classeur sans activer les macros pour rendre tout ceci inutile.


Je pencherai plus sur une gestion des droits directement sous Windows
30 personnes dans mon groupe de travail.
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re,

C'est bien ça Macsscam, et pas besoin de mot de passe après le login.

Comme je l'ai dit, utiliser par exemple kynes72954...

Edit : Juste une chose, vous avez oublié un End If il me semble, à mettre juste avant End Sub. C'est pas grave :)

PS : noter que dans ma macro j'ai supprimé le 2ème GoTo 1 (après la MsgBox), il était inutile.

A+
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re

Bonjour job75
Si j'ai testé (j'ai même testé ton code avant que tu ne l'écrives ici
car cette méthode* est connu depuis un bail ... )

J'ai testé ton code de 16h22
J'ai copié ton code dans un classeur vierge
(dans ThisWorkBook je crois c'est bien cela :D)

J'ai fermé ce fichier, puis réouvert sans activer les macros.
Donc ??

Je vais tester ton code de 15h10*
(mais ce sera le même verdict, mais sans la moindre remarque acide de ma part ;) )

En bref : pour un utilisateur basique d'Excel : protection efficace

pour un utilisateur tel que toi ou moi, job75 : protection inutile car facilement contournable

(sauf en utilisant Excel 2003 et supérieur et les options de cryptage )

Donc pour ma part: je me pencherai vers la gestion des droits utilisateurs sous Windows
(a condition de disposer d'un partition en NTFS)
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Bonjour link93,

Tit question qu'entend tu pars donné au onglet suivant le nom windows ?

Il y a 2 noms utilisateurs, celui d'Excel (menu Outils-Options-Général, facilement modifiable) et celui de Windows (Panneau de configuration-Comptes d'utilisateurs).

Pour vérifier ce dernier, lancer la macro :

Code:
Sub Macro()
MsgBox Environ("Username")
End Sub

A+
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

J'ai testé ton code de 16h22
J'ai copié ton code dans un classeur vierge
(dans ThisWorkBook je crois c'est bien cela :D)

J'ai fermé ce fichier, puis réouvert sans activer les macros.
Donc ??

Donc on est sur la belle 1ère page avec :

SEUL UN UTILISATEUR REPERTORIE PEUT UTILISER CE FICHIER

LES MACROS DOIVENT ÊTRE ACTIVEES


Et on ne peut pas aller sur d'autres feuilles.

Je ne comprends pas, aurais-je manqué un raisonnement :confused:

A+
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re Staple,

Par contre, bien d'accord, il n'y a pas de protection véritable.

Quelqu'un qui veut absolument voir toutes les feuilles activera les macros, créera un nouveau document et placera dans un module :

Code:
Sub AfficheFeuilles()
Dim w As Object
For Each w In ActiveWorkbook.Sheets
w.Visible = True
Next
End Sub

Il lui suffira de lancer la macro pour afficher toutes les feuilles du classeur actif...

A+
 

Staple1600

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re

Job75:
Je redis ce que j'ai déjà dit
Un utilisateur basique d'Excel ne saura pas contourner la protection

Toi, moi, ou toute personne disposant d'une connexion internet (connaissant ce forum depuis longtemps, et sachant utiliser un moteur de recherche) saura contourner cette protection.

Donc au final, celle-ci est inutile car facilement et rapidement contournable.

PS: je viens de faire le test et j'ai pu contourner cette protection et donc commenter le code pour l'inhiber et rendre toutes les feuilles visibles.
Je n'ai pas triché: j'ai taper un mot de passe au hasard (les yeux fermés) pour protéger le projet VBA.

Je n'ai utiliser que des informations disponibles sur ce forum.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
355
Réponses
5
Affichages
603
Compte Supprimé 979
C

Statistiques des forums

Discussions
314 062
Messages
2 105 220
Membres
109 289
dernier inscrit
6LV1.69510