Gestion d?autorisations

Signaler
Messages postés
9
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
29 mars 2007
-
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous,




<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 






Je dispose d’un programme en vba que j’ai développé pour mon entreprise. Je souhaiterais y intégrer une gestion des mots passe par le biais d’une feuille excel qui se trouve sur le réseau.





 






Je dispose d’un moteur de recherche sur une page excel. Cette interface me permet d’une part de rechercher et lister des fichiers se trouvant sur le réseau, et d’autre part de créer ou supprimer des fichiers.




En fonction du niveau d’accès, on peut soit simplement rechercher des fichiers, ou bien les rechercher, les créer et les supprimer.





 






Actuellement je gère mes mots de passe directement dans le code sous la forme :





 








 If Utilisateur.Text "controle" And mdp.Text "entree" Then






PasseWord.Hide




ModifCarte.Show





 






En fonction de l’accès, des boutons se mettent en invisible.





 







 






Cela fonctionnait très bien pour le moment, mais il se trouve que de plus en plus d’utilisateurs viennent utiliser mon programme.




Je voudrais donc gérer tous les mots de passe par une feuille se trouvant sur le réseau, dans laquelle je pourrais venir enlever ou rajouter des noms, et leur donner un niveau d’accès.





 






J’ai pour le moment le code suivant :





 







Private Sub Validpasse_Click()








 








If Utilisateur.Text = Empty Then End






m = "D:\documents and Settings\CMLGAT1\Desktop\gestion des mots de passe.xls"





' Recherche du profil








    Set Rech = Workbooks("m").Worksheets("feuil1").Range("utilisateurs").Find(Utilisateur.Text, LookIn:=xlValues)








    If Not Rech Is Nothing Then






' Contrôle du mot de passe





       
If mdp.Text = Rech.Cells(1, 3) Then







' Si Ok mémorisation du niveau d'utilisateur





            'Range("Niveau_en_cours") = Rech.Cells(1, 3)




' Ouverture du premier écran de l'application





            'UserForm1.Show





            ModifCarte.Show





        Else




' Mot de passe invalide





            MsgBox ("Mot de passe invalide")




'        End





        End If





    Else




' Utilisateur inconnu





     
  MsgBox ("Utilisateur inconnu")





    End If




End Sub





 






Mais j’ai quelques problèmes d’erreurs, il n’accepte pas cette partie :





 






m = "D:\documents and Settings\CMLGAT1\Desktop\gestion des mots de passe.xls"





' Recherche du profil








    Set Rech = Workbooks("m").Worksheets("feuil1").Range("utilisateurs").Find(Utilisateur.Text, LookIn:=xlValues)







 







 






Si quelqu’un a une idée, ou peux me proposer une autre solution….





 






Merci par avance





 






Greg

2 réponses

Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
Salut,

Avant d'effectuer ta recherche, il faut ouvrir ton classeur :

dim m as workbook

set m = application.workbooks.open(


"D:\documents and Settings\CMLGAT1\Desktop\gestion des mots de passe.xls")






Set Rech = m.Worksheets("feuil1").Range("utilisateurs").Find(Utilisateur.Text, LookIn:=xlValues)



avec application.screenupdating = false avant l'ouverture et m.close false, on y verra que du feu.

et voilà

@+++







[mailto:K@lobit K@lobit] < Ne pas clicker ici
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
Tu écris:
Set Rech = Workbooks("m")

Tu ne dois pas mettre de guillemets autour de la variable "m"
Set Rech = Workbooks(m)......






MPi