Bestandnaam in Listbox, Zonder extensie

Status
Niet open voor verdere reacties.

mark1987vw

Gebruiker
Lid geworden
19 mei 2009
Berichten
96
Hallo,

Ik heb een listbox waarin ik vanuit een bepaalde map alle bestanden inlaad.

Dit heb ik gedaan d.m.v. de volgende code:

Code:
Private Sub UserForm_Initialize()


Dim FSO As Object, fld As Object, Fil As Object
Dim SubFolderName As String
Dim i As Integer

    Set FSO = CreateObject("Scripting.FileSystemObject")
        Me.ListBox1.Clear
     
     SubFolderName = "C:\Testmap"
     
     
     Set fld = FSO.GetFolder(SubFolderName)
    
    For Each Fil In fld.Files
    i = i + 1
        Me.ListBox1.AddItem Fil.Name
    
    Next Fil

End Sub

Met de volgende uitkomst:

testlistboxfiles.JPG

Is het ook mogelijk om de bestanden zichtbaar te maken zoals op de afbeelding, alleen dan zonder bestandsextensie.
Heb hierover van alles gevonden op internet maar ik krijg het niet voor elkaar.
 

Bijlagen

  • ListboxFilename.xlsm
    13,5 KB · Weergaven: 15
Deze:
Code:
Me.ListBox1.AddItem Left(Fil.Name, InStrRev(Fil.Name, ".") - 1)
Wat netter geschreven:
Code:
Private Sub UserForm_Initialize()
    Dim FSO As Object, fld As Object, Fil As Object
    Dim SubFolderName As String
    Dim i As Integer
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Me.ListBox1.Clear
         
    SubFolderName = "C:\Testmap"
    Set fld = FSO.GetFolder(SubFolderName)
    For Each Fil In fld.Files
        i = i + 1
        Me.ListBox1.AddItem Left(Fil.Name, InStrRev(Fil.Name, ".") - 1)
    Next Fil
End Sub
 
Laatst bewerkt:
Code:
Private Sub Userform_initialize()
  set fs=createobject("scripting.filesystemobject")
  c00="C:\Testmap\"

  loop 
    c01=dir(c00 & "*.*)
    if c01 <>"" then c02=c02 & "|" & c00 & fs.getbasename(c00 & c01)
  do until c01=""

  ListBox1.List=split(mid(c02,2),"|")
End Sub
 
Vermijd .additem voor het vullen van een listbox/combobox.
 
Omdat dat nogal vertragend werkt.
 
Oke bedankt dan weet ik dat nu ook. Het zijn in mijn geval maar een paar bestanden waardoor ik daar niet zo veel last van heb.
Maar ik zal het eens goed bekijken hoe ik het doe zonder.
 
Zoals snb het deed.
Zet ze in een aray en geef de array aan de .List van de ListBox.
 
Indien het alleen om ".xlsm" bestanden gaat.

Code:
ListBox1.List = Split(Replace(CreateObject("wscript.shell").exec("cmd /c Dir ""C:\Testmap\*.xls""/b").stdout.readall, ".xlsm", ""), vbCrLf)
 
Een vervelende flikkering krijg je er zo wel bij
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan