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

Fermé
howiz Messages postés 20 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 21 août 2015 - 5 juin 2015 à 11:55
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 5 juin 2015 à 22:15
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 juin 2015 à 16:24
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
5 juin 2015 à 22:15
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 709
5 juin 2015 à 12:11
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 mercredi 1 avril 2015 Statut Membre Dernière intervention 21 août 2015
5 juin 2015 à 15:02
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 mercredi 1 avril 2015 Statut Membre Dernière intervention 21 août 2015
5 juin 2015 à 15:02
ligne*
0