Ouvrir un txt pour chercher une valeur et
Bonjour!
J'ai un petit problème de conception/programmation.
J'ai un fichier, ici "ListeNIP.txt" qui est crypter à l'aide d'un petit algorithme bien simple.
À l'aide d'un bouton sur ma page excel, je demande à l'utilisateur d'entrer son NIP pour vérifier qu'il a accès à l'aide d'une InputBox. La macro doit aller comparer le NIP entré avec une liste "Utilisateur,NIP" déjà entrés dans le fichier txt. Lorsqu'il le trouve, il envoie une MsgBox pour lui demander si c'est bien l'utilisateur qui est devant l'écran (confirmation).
En somme, le fichier ListeNIP.txt ressemble à:
Utilisateur1, nip1
Utilisateur2, nip2
Utilisateur3, nip3
Utilisateur4, nip4
Utilisateur5, nip5
Utilisateur6, nip6
Utilisateur7, nip7Voici le code que j'ai entré...
Sub CheckNIP()
Dim FindVar As Variant
Dim FilePath As String
Dim Username As String, Password As Integer
FilePath = "ListeNIP.txt"
FindVar = InputBox("Veuillez entrer votre NIP:", "NIP") 'Search value
Decrypter
Open FilePath For Input As #1
Do Until EOF(1)
Input #1, Username, Password
'Ici j'indique quoi pour qui recherche
'la variable FindVar dans la colonne "Password"
'et qu'il retourne la valeur de Username
'attachée??
'Merci!
Close #1
Crypter
End SubJ'ai besoin d'une lumière en VBA! MercI!
Voici ma proposition :
Sub test()
Dim FindVar As Variant
Dim FilePath As String
Dim Username As String, Password As String
Dim Trouve As Boolean
FilePath = "c:\ListeNIP.txt"
FindVar = InputBox("Veuillez entrer votre NIP:", "NIP") 'Search value
Open FilePath For Input As #1
Do Until EOF(1) Or Trouve
Input #1, Username, Password
If Password = FindVar Then Trouve = True
Loop
Close #1
MsgBox "Nom de l'utilisateur : " & Username
End SubOuah! Je ne savais pas que je pouvais intégrer "Or" !!!
Un grand merci!
Bon, j'ai d'autres problèmes. J'essai de gérer les différents événements que pourrais survenir à l'utilisteur
Voici mon code:
On Error GoTo Error
Dim FindVar As Variant
Dim FilePath As String
Dim Username As String, Password As String
Dim Trouve As Boolean
Dim i As Integer
NIP:
Decrypter
FilePath = "ListeNIP.txt"
Open FilePath For Input As #1
FindVar = ""
Username = ""
Password = ""
FindVar = InputBox("Veuillez entrer votre NIP:", "NIP") 'Search value
Do Until EOF(1) Or Trouve
Input #1, Username, Password
If Password = FindVar Then Trouve = True
Loop
Close #1
Crypter
i = MsgBox("Êtes-vous bien " & Username, vbYesNoCancel + vbQuestion, "Confirmation")
If i = 6 Then
MsgBox "Votre signature a été apposée dans le rapport", vbInformation, "Terminé"
Crypter
'Instruction pour ajouter l'image
Exit sub
ElseIf i = 7 Then
Crypter
GoTo NIP
Else
MsgBox "Opération annulée"
Crypter
Exit Sub
End If
Exit Sub
Error:
ERREUR
End SubCe qui se produit:
- L'utilisateur entre son nip
- La boîte de confirmation avec son nom s'affiche. Il peut appuyer sur Oui, Non ou Annuler.
- Lorsqu'il appuie sur non, je veux qu'il retourne à l'input box.
- Il entre de nouveau son NIP (nip différent de la première fois.
- La boîte de confirmation s'affiche à nouveau mais c'était comme s'il avait garder en mémoire le premier NIP.
J'ai de la misère à figurer comment VBA gère les variables... quand il les vident etc. De plus, je voudrais que lorsqu'il parcourt tout le document et qu'il n'a pas trouvé le NIP, la boîte InputBox revienne pour choisir à nouveau son NIP.
Merci!
-- Mar Juin 07, 2011 5:39 pm --
Up! Quelqu'un a quelque chose à proposer?
Bonjour,
Peut-être comme cela :
Sub sécurité()
Dim FindVar As Variant
Dim FilePath As String
Dim Username As String, Password As String
Dim Trouve As Boolean, Sortie As Boolean
Dim i As Integer
FilePath = "c:\ListeNIP.txt"
NIP:
Decrypter
FindVar = ""
Username = ""
Password = ""
Sortie = False
Do
FindVar = InputBox("Veuillez entrer votre NIP:", "NIP") 'Search value
If FindVar = "" Then
Sortie = True
Else
Open FilePath For Input As #1
Trouve = False
Do Until EOF(1) Or Trouve
Input #1, Username, Password
If Password = FindVar Then Trouve = True
Loop
Close #1
End If
Loop Until Trouve Or Sortie
If Sortie Then
i = 2
Else
Crypter
i = MsgBox("Êtes-vous bien " & Username, vbYesNoCancel + vbQuestion, "Confirmation")
End If
Select Case i
Case 6:
MsgBox "Votre signature a été apposée dans le rapport", vbInformation, "Terminé"
Crypter
'Instruction pour ajouter l'image
Exit Sub
Case 7:
Crypter
GoTo NIP
Case Else:
MsgBox "Opération annulée"
Crypter
Exit Sub
End Select
Error:
erreur
End Sub