Bonsoir Realiste, bonsoir le forum,
Quelques incohérences dans ton code que j'ai commentées :
Private Sub CommandButton1_Click()
Dim Racine As String
Dim FS As Object
Dim Dossier As Object
dim F as object
Dim I As Integer
Racine = ActiveWorkbook.Path & "\test\"
'racine ne sera jamais vide vu la ligne au dessus...
If Racine = "\test\" Then Exit Sub
Set FS = CreateObject("Scripting.FileSystemObject")
Set Dossier = FS.getfolder(Racine) 'DossierRacine
'I = 0 inutile
Me.ListBox1.Clear
For Each F In Dossier.Files
'pas compris la première condition, "TXT" ne sera jamais égale à "*.*", il me semble qu'il manque une variable là
If "TXT" = "*.*" Or UCase(Right(F.Name, 3)) = "TXT" Then
Me.ListBox1.AddItem
'renvoie le nom sans l'extension si le nom ne contient pas d'autre point (.) que celui de l'extension
Me.ListBox1.List(I, 0) = Split(F.Name, ".")(0)
I = I + 1
End If
Next F
End Sub
Si le nom comporte plusieurs points et que l'extension a toujours 3 lettres (ce qui semble être le cas vu ta condition ), tu peux aussi utiliser :
Me.ListBox1.List(I, 0) = Left(F.Name, Len(F.Name) - 4)