ListBox et filtre

Neophale

XLDnaute Nouveau
bonjour

Voila plusieurs jours que je recherche comment créer et afficher une listbox avec N nombre de colonnes, et à y rentrer les lignes de ma base de données du classeur "Feuil1" de la colonne "A" à la colonne N.


Je recherche aussi comment faire pour mettre un filtre permettant d'écrire un morceau d'un nom et que la listbox soit mise à jour en affichant que les lignes dont les noms de la première colonne contiennent ce morceau de mot.


Par exemple je tape "org" dans un textbox.
Et dans ma listbox se fait un filtre où l'on ne voit plus apparaitre que les lignes ayant pour nom dans la première colonne :"organisation" ou "Génie organisateur"


Je vous remercie
 

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

Bonjour neophale,
Voici un bout de code d'un de mes fichier à adapter.
Ici Textbox3 et Listbox3 ....BD est le nom de l'onglet
Ceci est un début car sans fichier dur de tout refaire
Bruno
Code:
Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
ListBox3.Clear
If Len(TextBox3) < 3 Then Exit Sub
If TextBox3 = "" Then Exit Sub
With Sheets("BD").[A2:A65536]
Set c = .Find(TextBox3, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
ListBox3.AddItem  .[Cells(c.Row, 1)
ListBox3.List(ListBox3.ListCount - 1, 1) = c.Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'ListBox3.Selected(0) = True
End Sub
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

Re,
Après relecture ....petite rectif.car tu dois avoir qu'une seule colonne en listebox
Bruno
Code:
Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
ListBox3.Clear
If Len(TextBox3) < 3 Then Exit Sub
If TextBox3 = "" Then Exit Sub
With Sheets("BD").[A2:A65536]
Set c = .Find(TextBox3, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
ListBox3.AddItem c.Value
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'ListBox3.Selected(0) = True
End Sub
 

Neophale

XLDnaute Nouveau
Re : ListBox et filtre

Voila pour une première mise en place de ton code

La fonction de filtre marche très bien cependant la liste box n'affiche que la première colonne et pas les autres. Par exemple en tapant "tat"

Comment faire pour afficher l'ensemble des lignes dans la listbox ou est ce qu'il existe une fonction autre que la listbox pour afficher un tableau filtré de la même manière via un textbox dans un userform.


Merci
 

Pièces jointes

  • test.xls
    23 KB · Affichages: 260
  • test.xls
    23 KB · Affichages: 244
  • test.xls
    23 KB · Affichages: 266

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

Bon voici avec une Listview (c'est esthétique) et permets d'avoir plus de 10 colonnes que ne permet pas la ListBox.
Je te laisse découvrir ton fichier.
Désolé du retard.
Bruno
 

Pièces jointes

  • test2.xls
    43.5 KB · Affichages: 402
  • test2.xls
    43.5 KB · Affichages: 346
  • test2.xls
    43.5 KB · Affichages: 356

Neophale

XLDnaute Nouveau
Re : ListBox et filtre

Je te remercie maintenant tout fonctionne bien. J'ai un peu avancé dans mon code cependant j'ai 3 petites questions :

La première : comment insérer une image dans le cadre de mon userform (je pense à une carte des régions de France pour mieux visualiser par rapport à la listbox à choix multiple)

La deuxième : je voudrais que dans le cas ou rien n'est écrit dans textbox 1 tout s'affiche dans la listview

Exemple: je veux toute les licences de bourgogne sans préciser la spécialisation

Pour finir je voudrais savoir s'il est possible d'avoir des liens actifs dans une listview

Exemple: dans la colonne "Info complémentaire" je clique sur www.site.com et le site s'affiche. Ou alors un système qui permette de copier coller l'adresse.

Merci
 

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

Bonsoir,
Je n'ai pas réussi à ouvrir le fichier mais voici une solution.
On boucle sur toute la liste. . .
Bruno

Code:
Private Sub CommandButton1_Click()
For k = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(k) Then MsgBox ListBox1.List(k)
Next
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

j'ai réussis à ouvrir le fichier
annule le ListBox1_Change et mets ceci
Code:
Private Sub ListBox1_Change()
For i = 0 To 25
    If Me.ListBox1.Selected(i) = True Then
    Me.Controls("CheckBox" & i + 1).Value = True
    Else
    Me.Controls("CheckBox" & i + 1).Value = False
    End If
  Next i
End Sub

Pour selectionner dans la liste en fonction du coche d'un Checkbox cela complique, il faudra peut être faire un module de classe
Je regarde dans la soirée
Bruno
 

youky(BJ)

XLDnaute Barbatruc
Re : ListBox et filtre

voila le résultat,
Cijoint.fr - Service gratuit de dépôt de fichiers

j'ai renommé des checkbox pour que tout colle. . .
voir aussi en module1 j'ai chamboulé . . .
Bruno
Nouveau lien car oublié des trucs
 
Dernière édition:

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet