Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Dateiliste

Betrifft: Dateiliste von: Odin001
Geschrieben am: 23.08.2004 18:09:19

Hallo,

ich möchte über eine Userform einen Ordner angeben. Dessen Pfad soll ermittelt werden. Dann möchte ich im Ordner die erste Datei öffnen, mein makro ausführen, die Datei schließen, die nächste Datei öffnen, makro ausführen, schließen usw.

Die Userform existiert schon, funktioniert auch im "Einzelbetrieb". Nur im "Auto"ausführen komme ich nicht weiter. Ich schaffe es nicht, den Ordnerinhalt auszulesen und der Reihe nach die Dateien abzuarbeiten.





Danke, Odin001

  


Betrifft: AW: Dateiliste von: Wolfgang
Geschrieben am: 23.08.2004 18:20:43

Datei öffnen:
Workbooks.Open "Pfad"
z.B.: C:\MeinOrdner\MeineDatei

dann weiter mit workbook.save & workbook.close

usw.


  


Betrifft: AW: Dateiliste von: Odin001
Geschrieben am: 23.08.2004 18:29:31

Danke, aber ich meinte eigentlich das ich über die Schaltfläche "Quellordner angeben" zu einem beliebigen Ordner wechsle und das dessen Dateien nacheinander aufgerufen, bearbeitet, gespeichert und geschlossen werden. Also: "Einmal Button drücken", "Fertig"

Im "Manuell" Modus funktioniert das Ganze, nur das ich jedesmal die Datei aus dem Dialogfeld auswählen muss und jede Option per Hand einstelle (sind mehrere Dutzend gleich strukturierte Dateien)

Mfg, Odin001


  


Betrifft: AW: Dateiliste von: Wolfgang
Geschrieben am: 23.08.2004 18:50:58

ah ok, versuchs in dem Fall mal hiermit:

Set fs = CreateObject("Scripting.FileSystemObject")
Set aFolder = fs.GetFolder("DeinPfad")

For Each aFile In aFolder.Files
aFile.Open
'----Dein Makro
aFile.Save
aFile.Close
Next

Meintest du sowas?


  


Betrifft: AW: Dateiliste von: Odin001
Geschrieben am: 23.08.2004 21:50:17

Danke. Musste es noch ein wenig abändern, aber jetzt funktioniert es. Der Ordnerinhalt wird ausgelesen und in eine neue Datei geschrieben. Auf diese kann man ja beliebig zugreifen.

_________________________________________

Dim fso As New FileSystemObject

Private Sub butOrdneroeffnen_Click()

    Dim strpath As String
    Dim ws As Worksheet
    Dim strname As String
    Dim anzahlzeilen As Integer
        
    strpath = InputBox("Geben Sie den zu bearbeitenden Pfad an:", _
                Default:="C:\Test")
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Folder = fso.GetFolder(strpath)
    
    Application.Workbooks.Add
    Application.DisplayAlerts = False
        
    For Each ws In Worksheets
    k = ActiveWorkbook.Sheets.Count
        If k > 1 Then
            ws.Delete
        Else
            ActiveSheet.Name = "Ordnerinhalt"
        End If
    Next ws
    Application.DisplayAlerts = True
    
    With Cells(1, 1)
        .Value = "Dateiliste"
    End With
    
    For Each File In Folder.Files
    anzahlzeilen = Cells(Rows.Count, 1).End(xlUp).Row + 1
        With Cells(anzahlzeilen, 1)
            .Value = File
        End With
    Next
    
End Sub


_____________________________________________

mfg, Odin001


 

Beiträge aus den Excel-Beispielen zum Thema "Dateiliste"