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
 

job75

XLDnaute Barbatruc
Re : Mot de passe sur onglet EXCEL

Re, salut tototiti,

Bien d'accord, on peut toujours "casser" les mots de passe, mais ça devient du vice :D

Pour terminer en ce qui me concerne (je sors ce soir), et pour éviter qu'on affiche les feuilles par une macro extérieure, il faut protéger (par mot de passe...) le classeur :

Code:
Private Sub Workbook_Open()
Dim U As String, flag As Boolean, s As Object

U = InputBox("Entrez votre nom d'utilisateur :", "Utilisateur")
If U = "" Then flag = True: GoTo 1

On Error Resume Next
[COLOR="Red"]ThisWorkbook.Unprotect "mdp" 'adapter le mot de passe[/COLOR]

If U = "kynes" Then
  For Each s In Sheets
    s.Visible = True 'affiche la feuille
  Next
Else
  Sheets(U).Visible = True 'affiche la feuille de l'utilisateur
  If Err Then
    MsgBox "Utilisateur non répertorié..."
    flag = True
  Else
    Sheets(1).Visible = xlVeryHidden 'masque la 1ère feuille ("Accueil")
  End If
End If

[COLOR="red"]ThisWorkbook.Protect "mdp", True, False 'protège les structures du classeur[/COLOR]
ThisWorkbook.Saved = True 'évite le message à la fermeture du fichier s'il n'y a plus de modifications
1 If flag Then If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
Dim n As Byte
Application.ScreenUpdating = False
[COLOR="red"]ThisWorkbook.Unprotect "mdp" 'adapter le mot de passe[/COLOR]
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
[COLOR="red"]ThisWorkbook.Protect "mdp", True, False 'protège les structures du classeur[/COLOR]
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
End Sub

A+
 

macsscam

XLDnaute Junior
Re : Mot de passe sur onglet EXCEL

Bonjour à tous,

Merci pour cette discussion intéressante, je ne regrette pas d'être venu :D.

@Staple1600 : tu voyais comment le fonctionnement avec les comptes Windows ? du coup, chaque utilisateur aurait son fichier Excel ?

--
macsscam
 

jeanpierre

Nous a quitté
Repose en paix
Re : Mot de passe sur onglet EXCEL

Bonjour,

Oui, ça on connait mais c'est seulement valable sur 1 ordinateur à usage multi-utilisateurs.

Or, ici, il s'agit d'un fichier qui va être distribué pour être utilisé sur x ordinateurs et donc inapplicable.

Restons donc dans le simple et protégeons au mieux (sans jouer les fromagers).

Bonne journée.

Jean-Pierre
 

jeanpierre

Nous a quitté
Repose en paix
Re : Mot de passe sur onglet EXCEL

Re,

On peut être en réseau (généralement le cas) sans que la notion de groupe de travail s'applique au fichier.

Mon interprétation du groupe de travail s'entend au sein de l'entreprise car je ne pense pas que kynes en ait une différente.

Jean-Pierre
 

jeanpierre

Nous a quitté
Repose en paix
Re : Mot de passe sur onglet EXCEL

Re,

je cite "La macro de job75 suppose que différents utilisateurs ouvrent des sessions windows sur le même PC et utilisent un seul et unique fichier XLS"

Ce que j'ai dit, non ?

"mais c'est seulement valable sur 1 ordinateur à usage multi-utilisateurs"

Ceci dit, à 30 sur le même ordi... vois mal la bonne production.... donc inapplicable....
 

kynes

XLDnaute Nouveau
Re : Mot de passe sur onglet EXCEL

Pour mettre les choses dans le contexte (ce que je n'avais pas fait initialement) ce fichier doit me permettre de travailler en world wide (Brésil, UK, belgique... , avec une population de 30 personnes qui devront renseigner des infos. infos elles mêmes consolidées en central. J'ai bien essayé de concevoir une liste avec un formulaire sur un espace Sharepoint mais je n'ai pas pu utiliser les fonctionnalités (vraiment trés compliquées) de liste Sharepoint qui me permettait une transparence totale de confidentialité, je me suis donc rabattu sur un fichier Excel que je mettrai à disposition sur un portail Sharepoint que j'ai déjà paramétré.

Merci encore une fois pour toutes vos réponses et suggestions réellement passionnantes et pertinentes.

Cordialement

Kynes
 

kllmoon

XLDnaute Occasionnel
Re : Mot de passe sur onglet EXCEL

S'il y a soucis de confidentialité, pourquoi ne pas remettre une feuille unique à chaque utilisateurs puis utiliser un nouveau classeur pour la compilation de données une fois celles-ci toutes entrées?
 

kllmoon

XLDnaute Occasionnel
Re : Mot de passe sur onglet EXCEL

Exactement, tu fais un classeur source pour compiler tes données que tu gardes dans ton ordino que le nommera "source"

Tu envois à chaque membre de ton groupe un nouveau classeur contenant qu'une seule feuille soit, leur nom d'utilisateur, nom ou peut importe mais qque chose d'unique. Ensuite, à travars une macro dans ton fichier central, au simple clic d'un bouton tu peux importer les données pertinentes.

Regarde ici https://www.excel-downloads.com/threads/importer-donnees-excel-vers-autre-fichier-excel.123134/

Au clic du bouton dans ton classeur central tu dois faire 3 choses. Créer une nouvelle feuille, affecter le nom de cette nouvelle feuille à une variable puis avec un inputbox affecter le nom unique de la feuille source à une autre variable. Il sera ensuite un jeux d'enfant de copier ces feuilles dans ton classeur central à mesure qu'elles arrivent.

C'est selon moi la seule façon d'assurer une confidentialité à 100%
 

LD-HCF

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

Bonjour Job 75
Ce post est assez vieux mais il est parfait pour mon utilisation, et mes pauvres capacités en VBA.
Moi j'ai me cette version avec le username qui fonctionne très bien.
Est il possible d'ajouter dans ce code une option pour un ou plusieurs utilisateur d'avoir accès à toutes les feuilles ?
Merci
 

shankhen

XLDnaute Nouveau
Bonjour à tous,

J'ai suivi la démarche du post et mis en place la macro pour tous mes utilisateurs.

Je souhaite savoir si c'est possible de revenir en arrière sur le fichier.

En supprimant la macro, cela ne fonctionne pas.

Ou alors en effet d'avoir un "super-utilisateur" non concerné par la macro et la restriction ?

Merci d'avance
 

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