• 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.

vba code tellen files in folder en weergeven in excel

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.477
Weet iemand waar ik een code/macro kan vinden die (alle excel) files telt in een folder.

Die moeten dan weer gegeven worden waarbij dan ook de aanmaak/opgeslagen datum erbij staat.

Het tellen kan ik nog wel vinden maar dat laatste om het gedetailleerde te krijgen vind ik niet.
 
Een voorbeeldje:
Code:
Sub BestandInfo()
    Dim FSO As Scripting.FileSystemObject
    Dim SF As Object
    Dim fl As Scripting.File

    Set FSO = New Scripting.FileSystemObject
    Set SF = FSO.GetFolder("C:\Diversen")

    MsgBox "Aantal bestanden in folder: " & SF.Files.Count

    Range("A1:B1") = Array("Bestand", "Wijzigingsdatum")
    i = 2
    For Each fl In SF.Files
        Cells(i, 1) = fl.Name
        Cells(i, 2) = fl.DateLastModified
        i = i + 1
    Next fl

    Set FSO = Nothing
    Set SF = Nothing
End Sub

Wel eventueel even in de VBA editor een verwijzing zetten naar Microsoft Scripting Runtime:
scr.jpg

Voor meer mogelijkheden met dat object kan je hier kijken:
https://www.thevbprogrammer.com/Ch06/06-09-FSO.htm
 
Laatst bewerkt:
Graag gedaan.
Zojuist ook nog even erbij gezet hoe je het aantal bestanden in de opgegeven folder op kan halen.
 
Alleen de excelbestanden en de aanmaakdatum erbij.

Code:
Sub VenA()
  c00 = "E:\Temp\"
  ar = Split(CreateObject("WScript.Shell").Exec("cmd /c dir /b " & c00 & "*.xls*").StdOut.ReadAll, vbCrLf)
  MsgBox IIf(UBound(ar) = -1, 0, UBound(ar)) & " Excelbestand(en) gevonden"
  
  Set c = CreateObject("System.Collections.ArrayList")
  c.Add Array("Naam", "Gemaakt", "Gewijzigd")
  For j = 0 To UBound(ar) - 1
    With CreateObject("scripting.filesystemobject").getfile(c00 & ar(j))
      c.Add Array(.Name, .DateCreated, .DateLastModified)
    End With
  Next j
  Sheets("Sheet1").Cells(1, 1).Resize(c.Count, 3) = Application.Index(c.ToArray, 0)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan