Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Per VBA Dateien aus einem Ordner öffnen

Per VBA Dateien aus einem Ordner öffnen
11.05.2006 16:05:31
boris.odendahl@allianzgi.lu
Hallo,
ich habe mich wirklich bemüht eine Lösung zu finden, aber ich komme nicht recht weiter. Vielleicht ist einer von Euch so freundlich... !
Folgendes Problem:
Aus Excel möchte ich nacheinander mehrere CSV Dateien in einem bestimmten Ordner öffnen. Nach dem eine datei geöffnet ist wird eine bestimmte routine abgearbeitet, danach kommt die nächste CSV Datei an die Reihe und so weiter. Die Probleme die durch verschiedene Ländereinstellungen der CSV Datei und meinem PC auftreten habe ich schon gelöst. Die Namen der CSV Dateien unterscheiden sich nur durch einen Timestamp. Im Prinzip spielt der name der datei auch keine Rolle. Die Routine soll auf jede Datei in dem speziellen Ordner angewendet werden. Mein Problem liegt nun in der Definition des Ordners:
Dim Item As Object
Dim FileName As String
Dim i As Integer
Dim Folder As ?
Set Folder = "J:\Datawarehouse\Bank"
i = 0
For Each Item In Folder. Item
.........
mmhhh, irgentwie geht das nicht ...
Gruss und schon mal vielen Dank
BORIS

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Dateien aus einem Ordner öffnen
11.05.2006 16:10:43
UweD
Hallo
hier mal ein Muster von mir.

Sub alle_Dateien_Verzeichnis() '
strPath = "J:\Datawarehouse\Bank\" 'Pfad des Verzeichnisses ggf. anpassen
strExt = "*.csv"       'Dateiextension ggf. anpassen
Dim strFile As String
If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strExt)
Do While Len(strFile) > 0
Workbooks.Open Filename:=strPath & strFile
'mach was damit
'deine routine
Workbooks(strFile).Close
strFile = Dir() ' nächste Datei
Loop
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
AW: Per VBA Dateien aus einem Ordner öffnen
11.05.2006 16:14:54
IngGi
Hallo Boris,
so zum Beispiel:

Sub Dateien_oeffnen()
Dim fso As Object
Dim fo As Object
Dim f As Object
Set fso = ("Scripting.FileSystemObject")
Set fo = fso.getfolder("J:\Datawarehouse\Bank\")
For Each f In fo.Files
Workbooks.Open f.Path
Next 'f
End Sub
Gruß Ingolf
Anzeige
AW: Per VBA Dateien aus einem Ordner öffnen
11.05.2006 17:34:43
Boris
Vielen Dank,
ich habe Uwes Lösung umgesetzt. Das hat den Vorteil, das ich in dem Ordner xls und csv Dateien haben kann, aber nur die csv Datei vom Macro bearbeitet wird.
Vielen dank Euch beiden
Gruss
BORIS
AW: Per VBA Dateien aus einem Ordner öffnen
11.05.2006 19:40:05
Boris
Hallo,
vielleicht interessiert sich jemand für das gesamte Ergebnis. der Workflow ist folgendermassen:
- CSV Dateien werden von einem Makro in Outlook von der Mail getrennt und in einem Verzeichniss abgelegt.
- Das folgende Makro öffnet diese CSV Dateien, wobei zu beachten ist, das diese mit engl. Zahlenformat (. für , und , für .) erstellt wurden.
- Danach wird die Spaltenbreite angepasst und ein Autofilter eingefügt und die datei als XLS File gespeichert.
- Wenn so alle CSV dateien abgearbeitet sind, werden die CSV dateien gelöscht.
Option Explicit

Sub CSV_to_XLS()
' Wandelt CSV Dateien in XLS Dateien um
Dim strFile As String
Dim strPath As String
Dim strExt As String
Dim Item As String
Dim delFile As String
strPath = "J:\Datawarehouse\"
strExt = "*.csv"""
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
If strPath = "" Then
Exit Sub
Else
strFile = Dir(strPath & strExt)
Do While Len(strFile) > 0
Workbooks.OpenText Filename:=strPath & strFile, _
DataType:=xlDelimited, semicolon:=True, local:=True
'Das local Argument ist entscheidend, da Excel intern Engl Format verwendet und
'CVS daher mit Komma und nicht mit Semikolon trennt.
Cells.Select
Cells.EntireColumn.AutoFit
Rows("1:1").AutoFilter
Range("A1").Select
ActiveWorkbook.SaveAs Filename:= _
strPath & Mid(strFile, 1, 22) & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
strFile = Dir() ' naechste Datei
Loop
delFile = Dir$("J:\Datawarehouse\*csv")
Do While delFile <> ""
Kill "J:\Datawarehouse\" & delFile
delFile = Dir$("J:\Datawarehouse\*csv")
Loop
End If
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True
End With
End Sub

Viele Grüsse
Boris
Anzeige

75 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige