Hallo,
ich habe ein makro welches ich gerne auf alle Datein eines Ordners anwenden möchte.
Der Ablauf ist also folgender:
1 Datei im Ordner öffnen
2. Makro anwenden
3. Speichern
4. nächste Datei öffnen ....
Ich habe dazu einige makros gefunden, die jedoch bei mir alle samt nicht funktionieren. Es kommt nicht mals eine fehlermeldung.
z.B.
Sub MWMultiDateiUpdate()
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
'Schritt 1: Schleife über alle Excel Dateien in einem Verzeichnis
sPfad = "C:\Users\.......sts\Test"
sDatei = Dir(CStr(sPfad & "*.xl*")) 'Alle Excel Dateien
Do While sDatei <> ""
'Schritt 2: öffnen der Datei und Datenübertragung
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, False) 'nur lesend öffnen
Call clean_File
'Schritt 3: Datei speichern und wieder zu machen und nächste Schleifenrunde
Application.DisplayAlerts = False
oSourceBook.Close True 'speichern
Application.DisplayAlerts = True
'Nächste Datei
sDatei = Dir()
Loop
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
'Variablen aufräumen
Set oSourceBook = Nothing
End Sub
oder
Sub MehrereOeffnen2()
Dim strVerzeichnis As String
Dim strDatei As String
Dim strTyp As String
Dim strDateiname As String
strTyp = "*.csv"
Application.ScreenUpdating = False
strVerzeichnis = "C:\Users.........on Tests\Test"
strDateiname = Dir(strVerzeichnis & strTyp)
Do While strDateiname <> ""
Workbooks.Open Filename:=strVerzeichnis & strDateiname
Application.Run "clean_File"
ActiveWorkbook.SaveCopyAs Application.Substitute(strDateiname, ".csv", "") & ".xls"
ActiveWorkbook.Close
strDateiname = Dir
Loop
Application.ScreenUpdating = True
End Sub
klappen beide nicht.
Genauer möchte ich eigentlich auch, dass sich ein fenster öffnet sodass zu erst der Ordner pfad ausgewählt werden muss. Ich habe auch hierzu ansätze. Da aber das grundprogram nicht funktioniert, komme ich nicht weiter.
Ich verwende excel 2013
Danke für eure Hilfe!
|