jerry0110
Erfahrenes Mitglied
Hi,
ich habe eine Excel Datei angelegt mit mehreren Inhalten (Pfad der Datei, monatlich oder wöchentliche Auswertung, Emailadresse, etc). Jetzt möchte ich mit einer Schleife dieses Sheet auslesen und den Inhalt verarbeiten.
Jetzt habe ich folgendes gebastelt, was aber nicht durchläuft. Was mach ich falsch? bzw. wo ist der Denkfehler?
Bei sPath ist source.Range("B2") der Hauptpfad der Datei und source.Range("G" & LastRowNrSource) ist der jeweilige des einzelnen Kunden
ich habe eine Excel Datei angelegt mit mehreren Inhalten (Pfad der Datei, monatlich oder wöchentliche Auswertung, Emailadresse, etc). Jetzt möchte ich mit einer Schleife dieses Sheet auslesen und den Inhalt verarbeiten.
Jetzt habe ich folgendes gebastelt, was aber nicht durchläuft. Was mach ich falsch? bzw. wo ist der Denkfehler?
Visual Basic:
Sub CSV_erstellen()
Dim source As Worksheet
Dim LastRowNrSource As Long
Dim f As Integer
Set source = ThisWorkbook.Worksheets("Tabelle1")
'letzte Ziele im Ziel berechnen
LastRowNrSource = lastRowNr(source)
For f = lastRowNr(source) To 1 Step -1
Dim sFile As String, sPath As String, iFree As Integer
Dim arrCSV, arrTmp, arrXLS(), i As Long, j As Integer, n As Long
Dim zFile As String
Dim myDate As Date
sPath = source.Range("B2") & source.Range("G" & LastRowNrSource) 'anpassen
sFile = Dir(sPath & "*.csv")
zFile = "Report"
Application.ScreenUpdating = False
Do While Len(sFile)
iFree = FreeFile
Open sPath & sFile For Input As iFree
arrCSV = Split(Input(LOF(iFree), iFree), vbCrLf)
Close iFree
For i = 0 To UBound(arrCSV)
arrTmp = Split(arrCSV(i), ";")
n = Application.Max(n, UBound(arrTmp))
Next
ReDim arrXLS(1 To UBound(arrCSV) + 1, 1 To n + 1)
For i = 0 To UBound(arrCSV)
arrTmp = Split(arrCSV(i), ";")
For j = 0 To UBound(arrTmp)
arrXLS(i + 1, j + 1) = arrTmp(j)
Next
Next
With Workbooks.Add
.Sheets(1).Cells(1, 1).Resize(UBound(arrXLS), UBound(arrXLS, 2)) = arrXLS
.SaveAs sPath & Mid(zFile, 1, Len(sFile) - 4)
.Close
End With
sFile = Dir
Loop
LastRowNrSource = LastRowNrSource + 1
Next f
End Sub
Bei sPath ist source.Range("B2") der Hauptpfad der Datei und source.Range("G" & LastRowNrSource) ist der jeweilige des einzelnen Kunden
Visual Basic:
sPath = source.Range("B2") & source.Range("G" & LastRowNrSource)
Zuletzt bearbeitet: