accès multi-utilisateurs avec Password

Razorbak

XLDnaute Nouveau
Bonjour,

Je souhaiterais pouvoir bénéficier d’un énorme coup de main de votre part à tous…

J’explique rapidement les données du problème :

Mon chef m’a donné un bébé empoisonné… Je dois assurer la gestion des mots de passes de mes collègues (environ 40 à 50 utilisateurs).
Bref le bordel, entre ceux qui ne mettent pas à jour, ceux qui ont leurs mot de passe révoqué parce qu’ils ne l’ont pas changé au bout de 90 jours et qui prennent ceux des autres en les modifiants sans le signaler,…, je pleure.
Je dispose d’un fichier Excel sur un échange visible et modifiable par tous. Sécurité zéro…
Bref j’en ai marre…
J’ai déjà essayé de déplacer le fichier et de ne plus le partager. Résultat : encore plus de bordel qu’avant. Je soupçonne certains de mes collègues de s’être misent au vaudou…

Je souhaiterai un coup de patte pour les choses suivantes (bien sûr je n’ai à ma disposition qu’Excel 97 sous Windows XP SP1)

Je souhaiterai de nouveaux partager ce fichier cependant :

Je pense qu’il est nécessaire que les utilisateurs ne puissent voire et modifier que leur propres identifiants et MDP…
Je verrais bien une boite de dialogue au lancement du fichier demandant un login et un Password.
Il faudrait que la date de la dernière modification de la cellule MDP apparaisse.

Il faudrait créer 5 comptes administrateurs qui eux auraient accès à tout. Et qui pourraient créer de nouveaux utilisateurs changer les MDP et les Passwords de session…

Merci de votre patience… je suis preneur de toutes infos et toute aide sera la bienvenue
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : accès multi-utilisateurs avec Password

Bonsoir,

Un exemple simple:
Chaque utilisateur dispose d'une feuille qui s'affiche automatiquement en utilisant l'authentification du réseau

Code:
Private Sub Workbook_Open()
  Sheets(Environ("username")).Visible = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
For s = 2 To Sheets.Count ' on masque les feuilles
  Sheets(s).Visible = xlVeryHidden
Next s
End Sub

Exemple avec MP:
Visualise la(les) feuille(s) de l'utilisateur en fonction du mot de passe

Dans la feuille Admin

Code:
Mot passe    Feuille
Jacques       Boisgontier
Jacques       Boisgontier2
Jean            Dupont
Invité          TouLeMonde

Dans le UserForm

Code:
Private Sub B_ok_Click()
  If Me.motpasse <> "" Then
     For i = 1 To Range("MotPasse").Count
      If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
         temp = Range("feuille")(i)
         Sheets(temp).Visible = True
      End If
    Next i
  End If
  Unload Me
End Sub

Dans un Module

Sub auto_open()
  UserForm1.Show
End Sub

Sub AfficheTousOnglets()
 For Each s In ActiveWorkbook.Sheets
   s.Visible = True
 Next s
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   For s = 2 To Sheets.Count      ' on masque les feuilles
     Sheets(s).Visible = xlVeryHidden
   Next s
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • ProtectionOngletSimplex.xls
    41.5 KB · Affichages: 295
  • ProtectionOngletMultiFeuillesMPx.zip
    16.2 KB · Affichages: 335
Dernière édition:

Razorbak

XLDnaute Nouveau
Re : accès multi-utilisateurs avec Password

Ben voila, je suis de retour...

Merci à BOISGONTIER pour son exemple mais voila, il y a une petite chose que je ne comprends pas :p

Après la création de pages supplémentaires et à l'attribution de MdP, je n'arrive pas a rentrer dans les pages des utilisateurs d'utilisateurs pour exemple je vais joindre le fichier. En gros je ne crois pas que j'y comprends grand chose :eek:

Merci de votre aide :eek:
 

Pièces jointes

  • test2.zip
    37.4 KB · Affichages: 162
  • test2.zip
    37.4 KB · Affichages: 163
  • test2.zip
    37.4 KB · Affichages: 181

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : accès multi-utilisateurs avec Password

Bonjour,

Voir PJ

-Les noms de feuilles sont numériques. Il faut les convertir en texte avec Cstr()

temp = CStr(Range("feuille")(i))

-Pour ne pas saisir de mot de passe, on peut définir des noms de feuilles qui correspondent au nom d'utilisateur réseau:

Private Sub Workbook_Open()
Sheets(Environ("username")).Visible = True
End Sub

Protection

JB
 

Pièces jointes

  • Copie de test2.zip
    38.1 KB · Affichages: 238
  • Copie de test2.zip
    38.1 KB · Affichages: 244
  • Copie de test2.zip
    38.1 KB · Affichages: 284
Dernière édition:

dabom

XLDnaute Nouveau
Re : accès multi-utilisateurs avec Password

Bonjour Boisgontier,

j'ai telechargé sur votre site le fichier pour permettre l'ouverture des onglets par un mot de passe en fonction des utilisateurs...

J'ai adapté votre fichier au mien, mais j'ai constamment un bug sur la ligne suivante en gras:

Private Sub B_ok_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Quand je clique sur le Ok de mon userform pour le mot de passe, ca me met un bug sur cette ligne (elle se met en jaune)

Je ne comprends pas le pb parce que j'ai bien mis les meme noms pour le userform, Textbox, pour le mot MotPasse...
De plus, j'ai essayer de mettre CStr( devant la ligne, comme vous le disiez precedemment, mais ca ne change rien!

Avez vous une reponse a ce probleme?

Merci d'avance pour votre reponse.
 

dabom

XLDnaute Nouveau
Re : accès multi-utilisateurs avec Password

Bonjour Boisgontier,

j'ai telechargé sur votre site le fichier pour permettre l'ouverture des onglets par un mot de passe en fonction des utilisateurs...

J'ai adapté votre fichier au mien, mais j'ai constamment un bug sur la ligne suivante en gras:

Private Sub B_ok_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Quand je clique sur le Ok de mon userform pour le mot de passe, ca me met un bug sur cette ligne (elle se met en jaune)

Je ne comprends pas le pb parce que j'ai bien mis les meme noms pour le userform, Textbox, pour le mot MotPasse...
De plus, j'ai essayer de mettre CStr( devant la ligne, comme vous le disiez precedemment, mais ca ne change rien!

Avez vous une reponse a ce probleme?

Merci d'avance pour votre reponse.

Bon, ca me deprime un peu parce que j'ai trouvé mon erreur, car j'avais mal defini le nom des champs... mais maintenant c'est la ligne suivante en gras qui bug :(

Private Sub B_ok_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Aidez moi svp
 

gan-z

XLDnaute Nouveau
Re : accès multi-utilisateurs avec Password

Bonjour,

Voilà j'ai un fichier que je souhaite mettre systématiquement en lecture seule à l'ouverture.

Néanmoins je souhaite laisser un accès en lecture/écriture selon une liste d'utilisateurs reconnus par leur accès login à windows.

C'est à dire que préalablement "pierre.dupont@domaine.com" & "thierry.martin@domaine.com" ont les accès à la lecture ecriture du fichier mais le reste des users seront systèmatiquement en lecture seule.

Sachant le la manip concerne tout le fichier, Auriez vous une idée de code à me transmettre pour effectuer cette opération ?

merci d'avance;
Gan-z
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : accès multi-utilisateurs avec Password

Bonsoir,

Si l'utilisateur n'appartient pas à la liste des utilisateurs, le fichier est en lecture seule

Liste utilisateurs
Boisgontier
Dupont


Code:
Private Sub Workbook_Open()
  nom = Environ("username")
  Set temp = [utilisateurs].Find(what:=nom)
  If temp Is Nothing Then
    ActiveWorkbook.ChangeFileAccess xlReadOnly
  End If
End Sub


http://boisgontierjacques.free.fr/pages_site/protection.htm#ProtectReadOnly

JB
 
Dernière édition:

gan-z

XLDnaute Nouveau
Re : accès multi-utilisateurs avec Password

Bonsoir, merci d'avoir pris le temps de m'avoir répondu.

En fait c'est tout à fait ce que je recherche mais je souhaite lister les n utilisateurs dans VBA de façon à ce qu'il n'apparaissent pas dans le classeur.

utilisateur = jean.petit@domaine.com
utilisateur 2 = pierre.dupont@domaine.com
...
utilisateur n = laura.dupuy@domaine.com

et les comparer avec le login de la session windows. Si le login n'est pas dans la liste le fichier s'ouvre en lecture seule.

J'ai bien essayé de chercher avant de poster mais sans grande réussite.

Merci d'avance
Cordialement,
Gan-z
 

Statistiques des forums

Discussions
312 344
Messages
2 087 448
Membres
103 546
dernier inscrit
mohamed tano