philguit
Messages postés9Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention 2 juin 2007
-
13 mai 2007 à 18:32
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
14 mai 2007 à 02:01
Merci pour la réponse qui m'a bien aidée.
Pendant que j'y suis , je formule une autre demande, j'ai 2 tableaux(feuillede calcul excel), la colonneA de la feuille1m'indique le nom des villes,les autres colonnes les caractéristiques diverses de la ville en question; dans la colonne A de la feuille 2, toujours le nom des villes,mais avec d'autres caractérisitiques.Je souhaiterais depuis mon UserForm de consultation, sélectionner une ville dans la Listbox1 liée à la feuille 1, (colonneA), dans une autre listbox2,pouvoir lire les données de plusieurs colonnes de la feuille2,correspondant à la ville choisit.et ceci sans voir apparaître 2 fois le nom de la ville choisit.(ex:PARIS ,en France,en Europe,en Ile de france ect..), en selectionnant "PARIS" dans la ListBox1,je verrais apparaître dans la ListeBox2 ,les lignes d'infos contenues dans la feuille2 ,cad: En Europe,En France etc..
Merci pour la patience de me lire,j'ai déja contruit l'UserForm avec les Listbox, la listbox1 me fait bien voir l'ensemble de la colonneA de la feuille1, quand à la Listbox2, je ne vois pas de solution , en l'état actuel de mes connaissances.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 14 mai 2007 à 02:01
Tu dois utiliser l'événement Click ou DblClick de ta listbox1. Ou encore sur Click d'un bouton...
Là, tu as 2 options
soit tu boucles de la ligne 1 à la dernière ligne de la feuille2 pour trouver une valeur identique
soit tu utilises la fonction Find pour trouver la valeur sans utilisation de boucle
Je préfère la 2e solution
Set Recherche = Sheets("Feuil2").Columns("A:A").Find(Listbox1.text)
If not recherche is Nothing then
For i = 1 to NombreDeColonnes ' de la feuille 2
Listbox2.additem Sheets("Feuil2").Range(Recherche.Address).Offset(0, i)
next
End if