• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

bestandsnamen tonen

Status
Niet open voor verdere reacties.

wilbert1967

Gebruiker
Lid geworden
19 jun 2004
Berichten
629
hallo

hoe toon ik in een userform met daarin een msgbox of combibox of listbox (wat is beste)
de bestanden die in een bepaalde dictorie staan?

mvg
wilbert
 
hallo

hoe toon ik in een userform met daarin een msgbox of combibox of listbox (wat is beste)
de bestanden die in een bepaalde dictorie staan?

mvg
wilbert

Via FileSearch.
Welke het beste is hangt af wat je ermee wilt gaan doen.

In 1 oogopslag zichtbaar maken. - msgbox, listbox
Items selecteren - listbox, combobox.

Met vriendelijke groet,


Roncancio
 
Kleine kanttekening bij de methode 'Application.FileSearch'.... Deze zit niet meer in VBA 2007! :mad:

Groet, Leo
 
Daarom eentje zonder FileSearch

Code:
Sub Overzicht()
    Dim response As String, file As Variant
    response = InputBox("Welke directory wenst U", "FileSearch", "D:\Mijn documenten\")
    [A:A].ClearContents
    [A1].Value = "Bestandsnamen"
  With CreateObject("scripting.filesystemobject").GetFolder(response)
  For Each file In .Files
    If Right(file.Name, 4) = ".xls" Then Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = file.Name
    Next
  End With
End Sub

Mvg

Rudi
 
Laatst bewerkt:
Deze loopt sneller
Code:
Sub tst()
  c0 = "Bestandsnamen"
  With CreateObject("scripting.filesystemobject").GetFolder(InputBox("Welke directory wenst U", "FileSearch", "E:\OF"))
    For Each fl In .Files
        If Right(fl.Name, 4) = ".xls" Then c0 = c0 & fl.Name & "|"
    Next
    [A:A].ClearContents
    [A1].Resize(UBound(Split(c0, "|"))) = WorksheetFunction.Transpose(Split(c0, "|"))
  End With
End Sub

Omdat de vraag gericht was op een userform met een listbox

Code:
Private Sub Userform_Initialize()
  For Each fl in CreateObject("scripting.filesystemobject").GetFolder("[COLOR="Teal"]E:\OF[/COLOR]").Files
    If Right(fl.Name, 4) = ".xls" Then c0 = c0 & fl.Name & "|"
  Next
  Combobox1.list=split(c0,"|")
End Sub

NB. de methode split met .list is vele malen sneller dan de methode .additem.
 
ik was nog niet zo ver dat ik het zeker wist
dus eerst gisteren getest
maar ik sluit nu af
na wat uitwerkingen is dit wat ik zocht
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan