cs_TTHIERRY
Messages postés50Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention22 décembre 2005
-
10 déc. 2005 à 18:49
cs_TTHIERRY
Messages postés50Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention22 décembre 2005
-
11 déc. 2005 à 09:26
bonjour,
j'ai un fichier Excel , je voudrai cas l'ouverture de cellui-ci on demande le non d'utilisateur et le mot de passe , et cella avant d'acticé les macros des classseurs
j'es mis dans une feuil6 les login et mot de passe des utilisateurs
pensez vous que c'est possible ??
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 11 déc. 2005 à 00:10
Bonsoir,
Tu peux pratiquer comme ceci.
1) Tu places sur un UserForm, un CommandButton, un Combobox et un TextBox (dans l'exemple txtMotdePasse).Dans la feuille 6, j'ai mis les noms dans la colonne A(A1, A2, etc...) et dans la colonne B, devant chaque nom son pot de passe.J'ai ensuite masquer la feuille6.
2)Enlever la croix du UserForm de façon que l'utilisateur ne peuve le fermer.
Le code:
Dans
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Dans le Module de code du UserForm:
Private Sub ComboBox1_Change()
txtMotdePasse.SetFocus
End Sub
Private Sub CommandButton1_Click()
Static compteur As Byte
compteur = compteur + 1
If ComboBox1.ListIndex >= 0 Then
If Sheets(3).Range("B1").Offset(ComboBox1.ListIndex, 0) = txtMotdePasse Then
MsgBox "Mot de passe correct", vbInformation, "Mot de passe "
Unload Me
Else
If compteur = 3 Then
MsgBox "Echec dans la saisie du mot de passe. " & _
vbCr & "La commande ne peut-être exécutée", _
vbOKOnly + vbExclamation, "Mot de passe incorrect"
Application.DisplayAlerts = False
ActiveWorkbook.Close
End If
MsgBox "Le mot de passe fourni n'est pas correct. ", _
vbOKOnly + vbExclamation, "Mot de passe incorrect"
txtMotdePasse.Text = ""
txtMotdePasse.SetFocus
Me.Caption = "Entrez le mot de passe. Tentative " & _
compteur + 1 & " sur 3"
End If
End If
End Sub
Private Sub UserForm_Initialize()
Dim r As Range, i
Set r = Sheets(3).Range("A1").CurrentRegion
ComboBox1.Clear
For i = 1 To r.Rows.Count
ComboBox1.AddItem r.Cells(i, 1)
Next
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub
Dans un Module
Public Declare Function GetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Public Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
jpleroisse
Si une réponse vous convient, cliquez Réponse Acceptée.