Recherche intuitive

Mgn_91

XLDnaute Nouveau
Bonjour,

J'ai trouvé sur internet un fichier Excel que je souhaite adapter selon mes besoin.s

Sur le formulaire, existe une listbox qui liste tous les doublons existants dans la base de données.

En sélectionnant le nom, tous les doublons s'affichent dans la listbox. J'ai modifié le code de base pour afficher dans la listbox les 4 premières colonnes de la base de donnée. Mais en cliquant sur une ligne de la Listbox, la macro plante et le formulaire de remonte pas les informations de la base de données.

Une personne pour m'aider à résoudre ce problème ?

Merci par avance
 

Pièces jointes

  • RechercheBD5Intuitif_V4.xls
    269 KB · Affichages: 45

Mgn_91

XLDnaute Nouveau
Bonjour Mgn_91

Vois si cela va un peu mieux
Merci énormément pour cette aide.

Afin de ne plus reproduire la même erreur, pouvez vous brièvement m'expliquer ce les lignes de code modifiées à savoir :

AD = Me.ListBox1.List(Me.ListBox1.ListIndex, 3)
Set c = Sheets("Planning").Columns(4).Find(AD, LookIn:=xlValues, lookat:=xlWhole)
For n = 1 To 13
Me.Controls("Textbox" & n) = Sheets("Planning").Cells(c.Row, n)
Next

Merci
 

pierrejean

XLDnaute Barbatruc
Re

AD = Me.ListBox1.List(Me.ListBox1.ListIndex, 3)
'adresse obtenue par la liste de Listbox1 repérée par l'index et le N° de colonne
Set c = Sheets("Planning").Columns(4).Find(AD, LookIn:=xlValues, lookat:=xlWhole)
'recherche de cette adresse dans la colonne 4 de la feuille Planning
For n = 1 To 13
'mettre dans les les textbox de 1 à 13 le contenu des cellules de Planning repérées par le N° de ligne (c.row) et le N° de colonne 'allant de 1 à 13 (n)
Me.Controls("Textbox" & n) = Sheets("Planning").Cells(c.Row, n)
Next

Si pas suffisamment clair ne pas hésiter à revenir
 

Mgn_91

XLDnaute Nouveau
Re

AD = Me.ListBox1.List(Me.ListBox1.ListIndex, 3)
'adresse obtenue par la liste de Listbox1 repérée par l'index et le N° de colonne
Set c = Sheets("Planning").Columns(4).Find(AD, LookIn:=xlValues, lookat:=xlWhole)
'recherche de cette adresse dans la colonne 4 de la feuille Planning
For n = 1 To 13
'mettre dans les les textbox de 1 à 13 le contenu des cellules de Planning repérées par le N° de ligne (c.row) et le N° de colonne 'allant de 1 à 13 (n)
Me.Controls("Textbox" & n) = Sheets("Planning").Cells(c.Row, n)
Next

Si pas suffisamment clair ne pas hésiter à revenir
Merci pour ces explications.

J'ai intégré ce code à mon fichier mais je constate que les informations remontées dans les textbox ne correspondent pas aux valeurs inscrites dans la base de données. Exemple : en sélectionnant le "TEST N°2" dans la combox1, la liste de doublons apparait dans la listbox1 mais en cliquant sur la première ligne de la listbox, les valeurs des textbox ne correspondent pas aux valeurs de la base de données.

Je pense qu'il y un bug au niveau de la reconnaissance de la ligne.
Pouvez-vous m'aider à résoudre cette erreur ?

Merci
 

Pièces jointes

  • test.xlsm
    1 MB · Affichages: 54

Paf

XLDnaute Barbatruc
Bonjour Mgn_91, pierrejean

Je répond à la place de pierrejean qui va me vilipender :rolleyes::(.


Dans Private Sub ListBox1_Click(), le N° de ligne est dans la colonne 5 donc :
AD = Me.ListBox1.List(Me.ListBox1.ListIndex, 4)

et, puisqu'on a le N° de ligne on peut supprimer la ligne : set c=....
et modifier dans la boucle:
For n = 1 To 13
Me.Controls("Textbox" & n) = Sheets("Planning").Cells(AD, n)
Next

A+
 

Mgn_91

XLDnaute Nouveau
Bonjour Mgn_91, pierrejean

Je répond à la place de pierrejean qui va me vilipender :rolleyes::(.


Dans Private Sub ListBox1_Click(), le N° de ligne est dans la colonne 5 donc :
AD = Me.ListBox1.List(Me.ListBox1.ListIndex, 4)

et, puisqu'on a le N° de ligne on peut supprimer la ligne : set c=....
et modifier dans la boucle:
For n = 1 To 13
Me.Controls("Textbox" & n) = Sheets("Planning").Cells(AD, n)
Next

A+
merci pour votre précieuse aide, je serai toujours aussi impressionnée par la réactivité des personnes et l'efficacité de ce forum !
 

Statistiques des forums

Discussions
312 069
Messages
2 085 042
Membres
102 765
dernier inscrit
richdi