Bonjour à tous,

Je me permets de solliciter votre aide pour une fonctionnalité que je souhaiterais réaliser.
Je suis en train de créer un logiciel qui me permet de gérer simplement des stocks et les entrées/sorties de matières.

Pour cela, la matière est affectée à un emplacement, contient une quantité, une référence et un numéro unique.

Mon programme créé un fichier .txt pour chaque entrée de matière dans un dossier "Stockage".
Toutes les informations concernant la matière sont enregistrées dans le titre du fichier.
Soit : Référence,NuméroUnique,Quantité,Emplacement.txt

Dans un écran de mon application qui me sert à consulter les matières en stocks, j'utilise une listbox à 4 colonnes qui liste tous les fichiers .txt présents dans le dossier et sépare les informations entre les virgule.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub UserForm_Initialize()
EcranSortie.ListBox_Sort.ColumnCount = 4
 
repertoire = ActiveWorkbook.Path & "\Stockage"
 
Dim Coll_Docs As New Collection
Dim Search_path, Search_Filter, Search_Fullname As String
Dim DocName As String
Dim i As Long
 
Search_path = repertoire
Search_Filter = "*.txt"
 
Set Coll_Docs = Nothing
 
DocName = Dir(Search_path & "\" & Search_Filter)
 
Do Until DocName = ""
    Coll_Docs.Add Item:=DocName
    DocName = Dir
Loop
 
For i = Coll_Docs.Count To 1 Step -1 '
 
Xpn = InStr(1, Coll_Docs(i), ",")
Xlabel = InStr(Xpn + 1, Coll_Docs(i), ",")
XQty = InStr(Xlabel + 1, Coll_Docs(i), ",")
XLoc = Len(Coll_Docs(i)) - 4
 
EcranSortie.ListBox_Sort.AddItem 'Coll_Docs(i)
EcranSortie.ListBox_Sort.List(ListBox_Sort.ListCount - 1, 0) = Left(Coll_Docs(i), Xpn - 1)
EcranSortie.ListBox_Sort.List(ListBox_Sort.ListCount - 1, 1) = Right(Left(Coll_Docs(i), Xlabel - 1), Xlabel - (Xpn + 1))
EcranSortie.ListBox_Sort.List(ListBox_Sort.ListCount - 1, 2) = Right(Left(Coll_Docs(i), XQty - 1), XQty - (Xlabel + 1))
EcranSortie.ListBox_Sort.List(ListBox_Sort.ListCount - 1, 3) = Right(Left(Coll_Docs(i), XLoc), XLoc - XQty)
 
Next i
 
End Sub

J'ai dans mon formulaire, une TextBox pour réaliser une recherche.
Je souhaiterais qu'au fur et à mesure que je tape des caractères, les résultats non correspondant ne s'affichent pas.
Exemple : si je tape un 5, toutes les références ne commencant pas par 5 ne s'affichent pas et ainsi de suite

Je n'arrive pas à réaliser cela en conservant l'affichage des différentes colonnes pour les résultats.
J'espère avoir été assez clair et vous remercie par avance de votre aide.