bepalen aantal files binnen een map

Status
Niet open voor verdere reacties.

apikills

Gebruiker
Lid geworden
14 jul 2005
Berichten
160
Ik zou graag in VBA een map willen selecteren (path opgeven), waarna de aanwezige files binnen de map worden weergegeven in een listbox. Wie kan mij hierbij helpen:confused:

apikills
 
Hoi apikills,

IK heb nu nog ff weinig tijd om er dieper op in te gaan, maar kijk eens op Google naar FileSystem Object.

Daar kun je behoorlijk wat dingen mee.

Laat maar weten als je er nog niet uit komt. Dan ga ik er straks wel dieper op in.
 
Hey Spiderman,

ben bang dat ik je hulp hierbij nodig hebt. Ben beginnende VBA-er en ben leuk bezig, maar dit is net even een stap te ver. Kom inderdaad veel tegen op het net, maar 'way out of my league':confused:

Als je tijd hebt, hoop ik dat je me hierbij wilt helpen :)

apikills
 
Dat is snel!! Ik ga er eens op mijn gemak naar kijken. Bedankt voor je snelle reactie Spiderman:thumb:

apikills
 
Spiderman,

Dit is inderdaad het begin dat ik zoek. Ik heb wel een vraagje. Als ik het aantal weergegeven files check, geeft hij steeds 1 bestand te veel op. Telt deze functie standaard ook de doelmap mee of zo? :confused:

apikills
 
Hoi apikills,

Als ik het aantal weergegeven files check, geeft hij steeds 1 bestand te veel op. Telt deze functie standaard ook de doelmap mee of zo?

Ik zou het niet weten. Bij mijn geeft hij het exacte aantal weer, maar ik zou zeggen zet er gewoon -1 achter, dan zou hij wel juist moeten tellen in jou geval
 
Oke Spiderman,

ik zou nu dus graag de namen van de aanwezige files (dus niet de mappen) in een listbox willen plaatsen. Ik heb nu wel het aantal files in de directory, maar nog niet de namen. Welke VBA commando's heb ik nodig om de namen van de aanwezige files te krijgen en bijv. in kolom E van jouw progje te krijgen?:(

greetz,

apikill
 
Hoi apikills,

Ik heb ff een stukje code van microsoft geleend :) en een beetje aangepast.

Code:
Function ShowFolderList([COLOR="red"]folderspec[/COLOR])
    ' Bron : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/ad23fd3a-5492-4a97-b83d-0ad0804d1e8f.asp
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder([COLOR="Red"]folderspec[/COLOR])
   Set fc = f.Files
   For Each f1 In fc
      s = s & f1.Name & vbCrLf
   Next
    MsgBox s
End Function

Je roept het op de volgende manier aan:
Code:
ShowFolderList [COLOR="red"]Folder[/COLOR]

Resultaat is een messagebox met daarin alle bestanden in de directory die in de variable Folder staan
 
Het Spiderman,

het werkt precies zoals ik wou. Geweldig bedankt voor je hulp !!

vrgr Apikills
 
Files tellen en opslaan in Listbox

Nog een oplossing:

Maak een userform volgens bijgaand voorbeeld met een tekstvak (TextBox1), een label (Label1; Pad), een lijst (ListBox1), een label (Label2; met info) en twee opdrachtknoppen (CommandButton1; Openen en 2; Sluiten) en kopieer de onderstaande code

Option Explicit

Private Sub CommandButton1_Click()
Documents.Open FileName:=TextBox1.Value & ListBox1.List(ListBox1.ListIndex) & ".doc"
UserForm1.Hide
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Private Sub ListBox1_Enter()
Label2.Caption = "Selecteer op een bestand en klik op Openen."
End Sub

Private Sub TextBox1_Enter()
CommandButton1.Enabled = False
TextBox1.Text = ""
ListBox1.Clear
Label2.Caption = "Typ de naam van de Map en druk op Enter."
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then LeesBestanden
End Sub

Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub

Private Sub LeesBestanden()
Dim f
Dim n As Integer
Dim s As String

With CreateObject("Scripting.FileSystemObject")
s = TextBox1.Value
If .FolderExists(s) Then
With .GetFolder(s)
If .Files.Count Then
For Each f In .Files
If Right(f.Name, 4) = ".doc" Then ListBox1.AddItem Left(f.Name, Len(f.Name) - 4)
Next
CommandButton1.Enabled = False
ListBox1.SetFocus
Else
MsgBox "Geen documenten in map " & s
TextBox1.SetFocus
End If
End With
Else
MsgBox "Map " & s & " bestaat niet."
TextBox1.SetFocus
End If
End With
End Sub
 

Bijlagen

  • Voorbeeld.JPG
    Voorbeeld.JPG
    39,9 KB · Weergaven: 88
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan