Recherche dans une listbox depuis une textbox sous condtion

Résolu/Fermé
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 - 8 sept. 2020 à 16:57
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 - 15 sept. 2020 à 17:42
Bonjour à tous,

J'ai ce bout de code qui me permet de faire une recherche depuis un textbox dans une listbox.

Sub IndexSuivant(Debut)

Dim i As Integer
Dim intPosition As Integer

'choix de la colonne de recherche    
    If OptionButton1.Value = True Then
        j = 0
        Else
        j = 1
    End If
    
    For i = Debut To Me.ListBox1.ListCount - 1
        If InStr(LCase(Me.ListBox1.Column(j, i)), LCase(Me.TextBox1.Text)) = 1 Then
            intPosition = i
            ListBox1.ListIndex = i
            Lindex = i + 1 'la prochaine recherche commencera ? i + 1
        Exit For
        End If
    Next i
    
End Sub


J'aimerais pouvoir ajouter une condition selon la valeur d'une checkbox.
Cette valeur permettrait de savoir comment effectuer la recherche. Si faux, la recherche se fait sur la totalité des fournisseurs (comme c'est déjà le cas), si vrai la recherche se fait que sur les fournisseurs dont le nom est composé d'un "/".

Autre alternative qui me vient au moment où j'écris ces mots. Au fur et à mesure de la saisie dans le textbox, la listbox se vide, comme un filtre et réduit les choix possibles.

Par avance merci pour votre aide et bonne journée.

Ludwig
A voir également:

5 réponses

f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
Modifié le 8 sept. 2020 à 18:09
Bonjour,

La variable Debut vient d'ou ?

Feuille ou UserForm?

Pouvez mettre un fichier exemple car cote listbox ,d'apres vote code, la recherche se fait sur colonne differente suivant l'optionbouton
1
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
11 sept. 2020 à 20:03
Bonjour,

Je fais une recherche sur deux colonnes
Dans votre feuille Excel, les fournisseurs avec/sans "/" sont sur combien de colonnes?
Vu que vous ne donnez pas comment est rempli la listbox
1
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1
13 sept. 2020 à 14:03
Bonjour,

Sur Ecxel, les fournisseurs sont sur une seule colonne.

Private Sub UserForm_Initialize()
NomFeuille = ActiveSheet.Name
DerLigne = Sheets(NomFeuille).Cells(Rows.Count, 1).End(xlUp).Row
DerCol = Sheets(NomFeuille).Cells(1, Columns.Count).End(xlToLeft).Column

Me.ListBox1.List = Range(Cells(1, 1), Cells(DerLigne, DerCol)).Value

End Sub


Bon dimanche !

Ludwig
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713 > Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024
14 sept. 2020 à 07:03
Bonjour,

Ok, je regarde la chose
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
14 sept. 2020 à 18:39
Bonjour,

Fichier pour recherche specifique en fonction d'une TextBox pour remplissage ListBox.
La recherche filtrant les noms ayant un "/"

A adapter pour votre fichier perso: https://mon-partage.fr/f/vUbJganP/

Pige pas le Ucase car les noms doivent etre en Majuscule dans les cellules!
1
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1
Modifié le 14 sept. 2020 à 22:57
Bonsoir,

C'est génial ça fonction super bien.

Le Ucase me permet de forcer l'écriture en majuscule dans le textbox.
Car, normalement, les fournisseurs sont toujours en majuscule dans ma liste. Mais, si il y en a un en minuscule je suis cuit. L'idéal dans ce cas serait une recherche sans tenir compte de la casse.

Encore merci pour ton aide. C'est génial !

Bonne soirée.

Ludwig
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713 > Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024
15 sept. 2020 à 06:49
Bonjour,

sans tenir compte de la casse.
C'est faisable sans problème
0
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1 > f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025
15 sept. 2020 à 13:10
Bonjour,

Je ne doute pas que ça doit être un jeu d’enfant pour toi.
J’ai ajouté application.proper au additem de la listbox. Les majuscules rendaient la listbox illisible.

Encore merci pour tout ce que tu as fait.

Bonne journée

Ludwig
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713 > Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024
15 sept. 2020 à 17:04
Re,

Donc pas de suite, ca vous va comme ca?
0
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1 > f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025
15 sept. 2020 à 17:42
Aucun problème !!!

Encore merci !!!
0
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1
8 sept. 2020 à 18:20
Bonjour,

Private Sub TextBox1_change()
TextBox1.Text = UCase(TextBox1.Text)
Lindex = 0
IndexSuivant (Lindex)
End Sub


Lors de cet évènement.

Les items de la listbox viennent, quant à eux, d'une feuille excel.
0
f894009 Messages postés 17241 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 février 2025 1 713
Modifié le 8 sept. 2020 à 18:31
Re,

Tout a fait Thierry.
Mais, pourquoi deux colonnes pour le recherche dans la ListBox?
D'ou vient la variable Debut:
Sub IndexSuivant(Debut)

Pour Info, faire la recherche sur le feuille excel plutot que la listbox
0

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

Posez votre question
Louloude74 Messages postés 62 Date d'inscription mercredi 1 août 2018 Statut Membre Dernière intervention 17 avril 2024 1
Modifié le 11 sept. 2020 à 15:18
Bonjour,

Merci pour ta réponse.

Je fais une recherche sur deux colonnes car je ne sais comment faire autrement. ;)

Le code mentionné plus haut et un code récupéré.

J'utilise un userform pour renseigner différents champs. J'avais besoin de lister les fournisseurs. Je l'ai donc fait à travers une listbox. J'ai ajouté un textbox pour l'utiliser comme un "moteur de recherche" dans mes fournisseurs, soit par le nom, soit par leur code. Une fois le fournisseur sélectionné, j'incrémente une deuxième liste avec ma sélection ou mes sélections.
Le hic avec "mon" code est qu'il me donne la première valeur trouvée et les fournisseurs sont en doublon : fournisseur (fournisseur générique) et fournisseur/code (nos fournisseurs). J'aimerais avoir la possibilité de faire la recherche que dans les fournisseurs avec un "/".

J'espère que cette fois-ci je n'ai pas répondu à côté de la plaque.

Encore merci et bonne journée.

Ludwig
0