Recherche sur 2 colonne

Le
Fredo(67)
Bonjour

j'ai un tableau d'ouvrier
J'ai créé une liste déroulante, où je sélectionne un nom parmis m=
a
liste
la liste déroulante renvoie en A5 la valeur sélectionnée
EN fonction de cette valeur, je fait une rechercheV pour récupérer des
information concernant mes ouvrier

Le Gros problème est que j'ai des frères (même nom).
LA fonction RechercheV me renvoie la première valeur trouvée
comment intégrer un 2ème paramètre de choix avec rechercheV ?

Par exemple
TERTRE MICHEL 3 ALLEE DES ALOUETTE
MARTIN SERGE 2 RUE DES LILAS
MULLER ETIENNE 6 IMPASSE NEUVE
SCHMITT FRANCIS 12 RUE DES ARTILLEURS
MARTIN ROGER 36 ALLEE ANCIENNE
GUETTAS MOHAMED 12 RUE HAUTE
MARTIN FREDERIC 48 RUE DE RIBEAUVILLE


Ma liste box ressemble à ça :
(je l'ai paramétrée pour voir apparaitre le contenu des 2 premières
colonnes)
TERTRE MICHEL
MARTIN SERGE
MULLER ETIENNE
SCHMITT FRANCIS
MARTIN ROGER
GUETTAS MOHAMED
MARTIN FREDERIC

Mais si je sélectionne Martin Roger
la fonction rechercheV va me renvoyer la première valeur
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ChristianM
Le #18711851
Bonjour,
la liste déroulante, c'est que le nom ou le nom et le prénom ?
et dans la seconde liste, tout dans une seule cellule (nom prénom adresse)
ou dans 3 ou 4 cellules côte à côte ?


--
ChristianM


"Fredo(67)"
Bonjour

j'ai un tableau d'ouvrier
J'ai créé une liste déroulante, où je sélectionne un nom parmis ma
liste
la liste déroulante renvoie en A5 la valeur sélectionnée
EN fonction de cette valeur, je fait une rechercheV pour récupérer des
information concernant mes ouvrier

Le Gros problème est que j'ai des frères (même nom).
LA fonction RechercheV me renvoie la première valeur trouvée
comment intégrer un 2ème paramètre de choix avec rechercheV ?

Par exemple
TERTRE MICHEL 3 ALLEE DES ALOUETTE
MARTIN SERGE 2 RUE DES LILAS
MULLER ETIENNE 6 IMPASSE NEUVE
SCHMITT FRANCIS 12 RUE DES ARTILLEURS
MARTIN ROGER 36 ALLEE ANCIENNE
GUETTAS MOHAMED 12 RUE HAUTE
MARTIN FREDERIC 48 RUE DE RIBEAUVILLE


Ma liste box ressemble à ça :
(je l'ai paramétrée pour voir apparaitre le contenu des 2 premières
colonnes)
TERTRE MICHEL
MARTIN SERGE
MULLER ETIENNE
SCHMITT FRANCIS
MARTIN ROGER
GUETTAS MOHAMED
MARTIN FREDERIC

Mais si je sélectionne Martin Roger
la fonction rechercheV va me renvoyer la première valeur......
Fredo(67)
Le #18715341
Je vais essayer de clarifier :
en A les noms
en B les prénoms
en C, D, E et F les renseignements
chaque colonne est nommée du nom du type (nom, prenom, adresse1...)
La zone A:B se nomme liste_nom_complets

J'ai changer ma listbox pour ne voir apparaitre que les noms.
Mais en fait, je pense qu'il faut que je repense entièrement ce
tableau.
Imaginons, que la listbox renvoie en A10 le contenu de la sélection
Il faut que je fasse une recherche sur les prénoms pour créer une
listbox des prénoms possibles en fonction des noms sélectionnés.

Ma question : Comment remplir une listbox avec le résultat d'un
filtre ?
Daniel.C
Le #18717131
Bonjour.
Pourquoi ne pas faire une listbox multicolonnes ? Cela te permet de
choisir directement le bon nom - prénom :
Le code pour remplir la listbox (je l'ai mis à l'ouverture du fichier,
dans le module "thisworkbook"; à toi de voir :

Private Sub Workbook_Open()
Dim c As Range
With Sheets("Feuil1")
.ListBox1.Clear
For Each c In Range(.[A2], .[A65000].End(xlUp))
.ListBox1.AddItem c
.ListBox1.List(.ListBox1.ListCount - 1, 1) = c.Offset(, 1)
Next c
End With
End Sub

La listbox a les propriétés suivantes :
- ColumnCount=2
- ColumnWidths = 60 pt;60 pt

La macro évenementielle suivante recopie les infos dans les cellules
G18:L18 :

Private Sub ListBox1_Click()
Dim Ligne As Long, c As Range
Ligne = ActiveSheet.ListBox1.ListIndex + 1
[G18:L18].ClearContents
For i = 0 To 5
[G18].Offset(, i) = Application.Index(Range([A2],
[F65000].End(xlUp)), _
Ligne, i + 1)
Next i
End Sub

Le classeur se trouve à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijLp4an82.xls
Cordialement.
Daniel

Je vais essayer de clarifier :
en A les noms
en B les prénoms
en C, D, E et F les renseignements
chaque colonne est nommée du nom du type (nom, prenom, adresse1...)
La zone A:B se nomme liste_nom_complets

J'ai changer ma listbox pour ne voir apparaitre que les noms.
Mais en fait, je pense qu'il faut que je repense entièrement ce
tableau.
Imaginons, que la listbox renvoie en A10 le contenu de la sélection
Il faut que je fasse une recherche sur les prénoms pour créer une
listbox des prénoms possibles en fonction des noms sélectionnés.

Ma question : Comment remplir une listbox avec le résultat d'un
filtre ?


Fredo(67)
Le #18718681
Merci beaucoup de ta réponse Daniel

Pour le remplissage de la list box j'ai appelé une zonne de 2 colonne
nommée NoM_PrénoM
donc je n'ai pas utilisé le code suivant :
Private Sub Workbook_Open()
    Dim c As Range
    With Sheets("Feuil1")
        .ListBox1.Clear
        For Each c In Range(.[A2], .[A65000].End(xlUp))
            .ListBox1.AddItem c
            .ListBox1.List(.ListBox1.ListCount - 1, 1) = c. Offset(, 1)
        Next c
    End With
End Sub



En fait j'ai besoin que, si je sélectionne le couple NOM1 - PRENOM 1,
la listbox1 me renvoie en g18 NOM1
et en H18 prénom1.

Comment faire ca ??
Daniel.C
Le #18718901
Oui, mais dans le cas présent, "NoM_PrénoM" n'apporte pas grand-chose;
modifie le code comme suit :

Private Sub Workbook_Open()
Dim c As Range
With Sheets("Feuil1")
.ListBox1.Clear
For Each c In [NoM_PrénoM].Resize(, 1)
.ListBox1.AddItem c
.ListBox1.List(.ListBox1.ListCount - 1, 1) = c.Offset(, 1)
Next c
End With
End Sub

Private Sub ListBox1_Click()
Dim Ligne As Long, c As Range
Ligne = ActiveSheet.ListBox1.ListIndex + 1
[G18] = Application.Index([NoM_PrénoM], Ligne, 1)
[H18] = Application.Index([NoM_PrénoM], Ligne, 2)
End Sub

Daniel

Merci beaucoup de ta réponse Daniel

Pour le remplissage de la list box j'ai appelé une zonne de 2 colonne
nommée NoM_PrénoM
donc je n'ai pas utilisé le code suivant :
Private Sub Workbook_Open()
    Dim c As Range
    With Sheets("Feuil1")
        .ListBox1.Clear
        For Each c In Range(.[A2], .[A65000].End(xlUp))
            .ListBox1.AddItem c
            .ListBox1.List(.ListBox1.ListCount - 1, 1) = c.Offset(, 1)
        Next c
    End With
End Sub



En fait j'ai besoin que, si je sélectionne le couple NOM1 - PRENOM 1,
la listbox1 me renvoie en g18 NOM1
et en H18 prénom1.

Comment faire ca ??


michdenis
Le #18719071
Pour le plaisir, lorsque l'on veut remplir des combobox
avec des listes où on a des doublons et que l'on veut
retenir pour le second combobox les entrées correspondant
à la sélection du premier combobox.

Il y a la bibliothèque "Microsoft Activex Data Object 2.x Librairy"
d'ajouter au fichier.
http://cjoint.com/?cwoH4IhdAM



"Fredo(67)"
Bonjour

j'ai un tableau d'ouvrier
J'ai créé une liste déroulante, où je sélectionne un nom parmis ma
liste
la liste déroulante renvoie en A5 la valeur sélectionnée
EN fonction de cette valeur, je fait une rechercheV pour récupérer des
information concernant mes ouvrier

Le Gros problème est que j'ai des frères (même nom).
LA fonction RechercheV me renvoie la première valeur trouvée
comment intégrer un 2ème paramètre de choix avec rechercheV ?

Par exemple
TERTRE MICHEL 3 ALLEE DES ALOUETTE
MARTIN SERGE 2 RUE DES LILAS
MULLER ETIENNE 6 IMPASSE NEUVE
SCHMITT FRANCIS 12 RUE DES ARTILLEURS
MARTIN ROGER 36 ALLEE ANCIENNE
GUETTAS MOHAMED 12 RUE HAUTE
MARTIN FREDERIC 48 RUE DE RIBEAUVILLE


Ma liste box ressemble à ça :
(je l'ai paramétrée pour voir apparaitre le contenu des 2 premières
colonnes)
TERTRE MICHEL
MARTIN SERGE
MULLER ETIENNE
SCHMITT FRANCIS
MARTIN ROGER
GUETTAS MOHAMED
MARTIN FREDERIC

Mais si je sélectionne Martin Roger
la fonction rechercheV va me renvoyer la première valeur......
Fredo(67)
Le #18719201
Merci.

j'ai adapté à mon cas précis, et ça marche super...
isabelle
Le #18719191
Bonjour Fredo,

Private Sub ListBox1_Click()
[G18] = ActiveSheet.ListBox1.Text
[H18] = ActiveSheet.ListBox1.Value
End Sub

=INDEX(C1:C100;EQUIV(1;(nom=$G$18)*(prenom=$H$18);0))

Valider avec Maj+Ctrl+entrée

isabelle

Fredo(67) a écrit :
Merci beaucoup de ta réponse Daniel

Pour le remplissage de la list box j'ai appelé une zonne de 2 colonne
nommée NoM_PrénoM
donc je n'ai pas utilisé le code suivant :

Private Sub Workbook_Open()
Dim c As Range
With Sheets("Feuil1")
.ListBox1.Clear
For Each c In Range(.[A2], .[A65000].End(xlUp))
.ListBox1.AddItem c
.ListBox1.List(.ListBox1.ListCount - 1, 1) = c.Offset(, 1)
Next c
End With
End Sub




En fait j'ai besoin que, si je sélectionne le couple NOM1 - PRENOM 1,
la listbox1 me renvoie en g18 NOM1
et en H18 prénom1.

Comment faire ca ??




Fredo(67)
Le #18719331
Merci à vous tous de vous être penché (sans tomber) sur mon problèm e
et de m'avoir apporté tous ces conseils.
isabelle
Le #18719441
ps/

j'ai oublié de te dire que j'ai mis la propriété BoundColumn = 2 et
ColumnCount=2
pour que .Value soit = au prenon et .Text = nom

isabelle

Fredo(67) a écrit :
Merci à vous tous de vous être penché (sans tomber) sur mon problème
et de m'avoir apporté tous ces conseils.



Publicité
Poster une réponse
Anonyme