19.02.2022, 23:54
Ich habe es jetzt zum Test so gelöst:
Sub SaveAsCSV()
Dim DstFileName As String, DstPfad As String
Dim Delimiter As String
Dim strZe As String
Dim lRow As Long, lCol As Integer
Dim Ze As Long, Sp As Integer
Dim ff As Integer
On Error GoTo ErrorHandler
DstPfad = "T:\" 'Anpassen, muss bereits existieren
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.")
DstFileName = strDateiname & "CSV-Export.CSV" 'InputBox("Bitte den Namen der CSV-Datei angeben.") 'CSV-Export.csv
Delimiter = ";"
With ActiveSheet
Range("A6").Value = Worksheets("Eingabe").TextBox4.Text
lRow = .Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
ff = FreeFile
Open DstFileName For Output As #ff
' Zeile für Zeile lesen und schreiben ...
For Ze = 1 To lRow
For Sp = 1 To lCol - 1
strZe = strZe & .Cells(Ze, Sp) & Delimiter
Next Sp
strZe = strZe & .Cells(Ze, Sp)
Print #ff, strZe
strZe = ""
Next Ze
End With
ErrorHandler:
If Err.Number <> 0 Then MsgBox "Fehler Nr. " & Err.Number & vbCrLf _
& Err.Description, vbCritical + vbOKOnly, "Das ging schief ..."
If ff > 0 Then Close #ff
End Sub
Was nur nicht verstehe. Die CSV Datei wird nicht im Laufwerk T erzeugt sondern immer in Dokumente warum ist das so?
Sub SaveAsCSV()
Dim DstFileName As String, DstPfad As String
Dim Delimiter As String
Dim strZe As String
Dim lRow As Long, lCol As Integer
Dim Ze As Long, Sp As Integer
Dim ff As Integer
On Error GoTo ErrorHandler
DstPfad = "T:\" 'Anpassen, muss bereits existieren
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.")
DstFileName = strDateiname & "CSV-Export.CSV" 'InputBox("Bitte den Namen der CSV-Datei angeben.") 'CSV-Export.csv
Delimiter = ";"
With ActiveSheet
Range("A6").Value = Worksheets("Eingabe").TextBox4.Text
lRow = .Cells.Find(what:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
ff = FreeFile
Open DstFileName For Output As #ff
' Zeile für Zeile lesen und schreiben ...
For Ze = 1 To lRow
For Sp = 1 To lCol - 1
strZe = strZe & .Cells(Ze, Sp) & Delimiter
Next Sp
strZe = strZe & .Cells(Ze, Sp)
Print #ff, strZe
strZe = ""
Next Ze
End With
ErrorHandler:
If Err.Number <> 0 Then MsgBox "Fehler Nr. " & Err.Number & vbCrLf _
& Err.Description, vbCritical + vbOKOnly, "Das ging schief ..."
If ff > 0 Then Close #ff
End Sub
Was nur nicht verstehe. Die CSV Datei wird nicht im Laufwerk T erzeugt sondern immer in Dokumente warum ist das so?