mreske
Goto Top

VBA: Datei über Zähler öffnen

Guten Morgen zusammen,

mich würde interessieren, ob man Dateien über einen Zähler öffnen kann.

Beispiel:
Im Ordner "Test" liegen 100 Dateien (.csv)
Ich möchte jetzt über eine Schleife die Datei öffnen, die meinem Zähler (i) im entspricht (also bzpw. die dritte Datei im Ordner).

Dim sPfad As String
Dim sDatei As String
Dim i As Long
Dim oSourceBook As Object

For i = 1 To 100
sPfad = ActiveWorkbook.Path & "\Test  
sDatei = Dir(sPfad & "\*.csv*")  

'Wie müsste ich die Workbooks.Open ändern, damit die jeweilige Datei geöffnet wird?  
**Set oSourceBook = Workbooks.Open(sPfad & i, False, True)**
 Next i 

Ich weiß, dass es mit Do While geht:
Do While sDatei <> ""
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True)

Aber ich würde gerne wissen, ob es auch über den Zähler funktioniert.

Vielleicht hat jemand eine Idee.
VIelen Dank im Voraus.
Gruß

Content-ID: 663226

Url: https://administrator.de/contentid/663226

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

147669
Lösung 147669 16.03.2021 aktualisiert um 08:16:17 Uhr
Goto Top
Da du nicht weiter spezifizierst ob "nach Zähler öffnen" bei dir bedeutet nach Reihenfolge die dritte Datei oder die Datei mit der Nummer 3 im Dateinamen hier mal die erste Variante
Dim sPfad As String
Dim sDatei As String
Dim i As Long
Dim oSourceBook As Object
Dim cntOpen as Long

sPfad = ActiveWorkbook.Path & "\Test  
sDatei = Dir(sPfad & "\*.csv*")  
' Workbook das geöffnet werden soll (hier das dritte nach Dateisystemsortierung)  
cntOpen = 3
for i = 1 to (cntOpen-1)
    sDatei = Dir
Next
Set oSourceBook = Workbooks.Open(sPfad & "\" & sDatei, False, True)  
mreske
mreske 17.03.2021 um 06:37:37 Uhr
Goto Top
Guten Morgen
vielen Dank für die Antwort.
Genau das habe ich gesucht.

ich habe es jetzt so gelöst
Dim sPfad As String
Dim sDatei As String
Dim i As Long
Dim oSourceBook As Object

sPfad = ActiveWorkbook.Path & "\Test  
sDatei = Dir(sPfad & "\*.csv*")  

'Anzahl der Dateien ermitteln.  
Do While sDatei <> ""  
lSTEPS = lSTEPS + 1
sDatei = Dir()

For i = 1 To (lSTEPS - 1)
' Workbook das geöffnet werden soll (nach Dateisystemsortierung)  
sDatei = Dir
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True) 'nur lesend öffnen  
'Hier ist Platz für weitere Aktionen  
Next i

Vielen Dank
Gruß