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 -
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.
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:
- VBA Problème récupération données dans BD (1 ligne sur 2)
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Ligne d'adresse 1 - Forum Réseaux sociaux
- Aller à la ligne excel - Guide
- En ligne sur messenger alors que non ✓ - Forum Facebook
3 réponses
Bonjour,
sans boucler
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 "
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.
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.