VBA Problème récupération données dans BD (1 ligne sur 2)

howiz Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,

J'ai un problème dans VBA que je ne sais résoudre....

Mon utilisateur choisi dans une base déroulante son nom puis valide. Jusqu'ici tout va bien.

Au moment où il valide, je veux récupérer dans la base de donnée "Liste DO", ses informations (telephone, matricule etc....), pour les insérer dans des cellules.

Le hic, c'est que pour un utilisateur sur deux, mon code n'arrive pas à récupérer les données.

Avez vous une idée du pourquoi du comment ?

Merci d'avance pour votre aide.


'---------------On va récupérer les informations du donneur d'ordre dans la base de donnée--------------
'nombre de lignes du tableau
NLign = Sheets("Liste DO").Range("C65536").End(xlUp).Row

' le nom sélectionner par l'utilisateur
Nom = ListBox1

Dim recherche As Integer
Dim matricule As String
Dim Prenom As String
Dim TelF As String
Dim TelP As String
Dim Mail As String
Dim Fonction As String
Dim Secteur As String

For recherche = 1 To NLign
'si le nom correspond au nom selectionné par l'utilisateur
If Sheets("Liste DO").Cells(recherche, 3) = Nom Then
'alors je récupere les autres infos qui sont dans les colonnes suivantes
Prenom = Sheets("Liste DO").Cells(recherche, 4)
Fonction = Sheets("Liste DO").Cells(recherche, 5)
TelF = Sheets("Liste DO").Cells(recherche, 6)
TelP = Sheets("Liste DO").Cells(recherche, 7)
Mail = Sheets("Liste DO").Cells(recherche, 8)
Secteur = Sheets("Liste DO").Cells(recherche, 10)
Exit For
Else
recherche = recherche + 1
End If
Next
A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

sans boucler
With Sheets("Liste DO")
On Error GoTo inconnu
recherche = .Columns("C").Find(nom, .Range("C1"), xlValues).Row
Prenom = .Cells(recherche, 4)
Fonction = .Cells(recherche, 5)
TelF = .Cells(recherche, 6)
TelP = .Cells(recherche, 7)
Mail = .Cells(recherche, 8)
Secteur = .Cells(recherche, 10)
End With

'suite du code

Exit Sub
inconnu:
MsgBox nom & " inconnu "
1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Au lieu de faire ta recherche sur sélection, je procède autrement.
Lors du chargement de la listbox, en colonne 2 masquée, je documente le numéro de ligne et ainsi sur sélection, aucune recherche à faire pour avoir les infos puisque la ligne est dans le listindex sélectionné : cela simplifie le code et évite les erreurs.
Si tu veux plus de détails, tu dis.
1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Une idée c'est la saisie intempestive et commune d'espaces en fin et j'essaierai ceci :
If Rtrim(Sheets("Liste DO").Cells(recherche, 3)) = Rtrim(Nom) Then
0
howiz Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour votre réponse. Ca ne marche toujours pas. C'est quand meme bizzare que le probleme existe pour 1 sur 2...
0
howiz Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
ligne*
0