Excel : listBox muliti-colones , multi-critére

sisamio - 2 févr. 2013 à 03:08
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
- 4 févr. 2013 à 16:26
Bonjour à tous,

j'ai tenté de programmer un tableau en VBA a l'aide d'un Userform dans lequel j'ai inséré une listbox multi-colones.

la listbox fonction très bien avec un seul critère de recherche, mais j arrive pas a ajouter un deuxième critère.

j'aimerais attaché le fichier excel mais l'arrive pas

Aidez moi s'il vous plait,
merci d'avance.

5 réponses

Utilisateur anonyme
2 févr. 2013 à 03:25
Bonjour,

j'ai tenté de programmer un tableau en VBA a l'aide d'un Userform dans lequel j'ai inséré une listbox multi-colones.


Ce serait sans doute plus rapide d'afficher la partie de code qui concerne la recherche que tu essaies de faire plutôt que d'attendre le passage du devin se service.

j'aimerais attaché le fichier excel mais l'arrive pas


Très peu de gens sont assez braves pour ouvrir les fichiers-joints; surtout s'ils contiennent des macros. Normalement le demandeur doit être capable d'expliquer ce qu'il veut faire avec l'extrait de son code qui concerne sa difficulté.
0
merci cmarcotte pour votre réponse
voici le code :


Private Sub CommandButton1_Click()

Set c = Range("a:a").Find(Me.TextBox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 0).Value
Me.ListBox1.List(i, 2) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 3) = c.Offset(0, 2).Value
Me.ListBox1.List(i, 4) = c.Offset(0, 3).Value
Me.ListBox1.List(i, 5) = c.Offset(0, 4).Value
Me.ListBox1.List(i, 6) = c.Offset(0, 5).Value
Me.ListBox1.List(i, 7) = c.Offset(0, 6).Value
Me.ListBox1.List(i, 8) = c.Offset(0, 7).Value
Me.ListBox1.List(i, 9) = c.Offset(0, 8).Value


Set c = Range("a:a").FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> premier
End If


End Sub
0
Utilisateur anonyme
2 févr. 2013 à 04:26
Bonjour,

Je suis à la veille de quitter pour aller me coucher, mais en attendant, je peux toujours m'assurer de vraiment définir ton problème pour ceux qui vont passer après moi. Parce que j'avoue ne pas vraiment comprendre à quoi tu veux en venir.

Donc, si je comprends bien ton code, tu cherches une valeur en colonne A et tu veux afficher dans ton ListBOx la ligne correspondante. Est-ce bien cela ?


Parce que j'ai bien l'impression qu'avec ton Offset(0,0), tu as 2 fois la même valeur dans ton ListBox; parce que Offset(0,0) signifie un décalage de 0 ligne et de 0 colonne.

Et ce que tu appelles ton 2e critère de recherche, est-ce la valeur suivante de la colonne A ou un second critère qui découle de ce que tu as déjà trouvé ?

Et maintenant, je dois laisser la place à "la relève".
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
2 févr. 2013 à 07:26
Bonjour,
Comme cmarcotte (que je salue), j'attends que les choses soient plus clairement exprimées en ce qui concerne le deuxième critère.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
4 févr. 2013 à 16:26
Ce que je crois comprendre, c'est que ton critère de recherche, ici, c'est Me.TextBox1.Value
Set c Range("a:a").Find( Me.TextBox1.Value , LookIn:xlValues)

Et tu voudrais un 2e critère à cette recherche... c'est ça ?

Si oui, tu pourrais insérer une colonne à ta feuille de données et concaténer les 2 critères selon ton besoin. Disons que ton 2e critère est en colonne 3, tu pourrais mettre la formule suivante en colonne A
=B2 & D2 que tu copies jusqu'en bas. Bien sûr, le fait d'insérer une colonne fait que la colonne A devient B et la C devient D

Donc ta recherche pourrait devenir
Set c = Columns("a").Find(Me.TextBox1.Value & Me.TextBox2.Value, LookIn:=xlValues)


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0