Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Betrifft: Export CSV
von: Manuela
Geschrieben am: 30.09.2019 09:21:43
Hallo zusammen,
ich habe hier einen Code der mir eine einzelne Zelle wieder Exportiert (in dem Fall A1). Leider bekomm ich das nicht hin, dann entweder die Ganze Tabelle exportiert oder zu mindestens die Zellen von A:J
Kann mir jemand bitte den Code Umschreiben.
Vielen Dank im Vorraus
Sub CSVDatei_schreiben(fn As String, Verzeichnis As String) Dim StrPath As String, nFileNr Dim Zeilen As Integer Dim Spalten As Integer Dim FileName As String Dim Daten As Variant Dim TS As Range, TZ As Range Const csvSeparator = "," On Error GoTo ErrorHandler StrPath = ActiveWorkbook.Path & "\" & Verzeichnis If Dir(StrPath, vbDirectory) = "" Then MkDir StrPath If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\" FileName = fn & ".fst" nFileNr = FreeFile With Worksheets(ActiveSheet.Name) 'es wird die aktive Tabelle benutzt Zeilen = .Cells(Rows.Count, 1).End(xlUp).Row Spalten = .Cells(1, Columns.Count).End(xlToLeft).Column Open StrPath & FileName For Output As #nFileNr For Each TZ In .Range("A1").Resize(Zeilen, 1) For Each TS In .Range("A1").Offset(TZ.Row - 1, 0).Resize(1, Spalten) Daten = Daten & TS.Value & csvSeparator Next Print #nFileNr, Daten Daten = "" Next Close #nFileNr End With Exit Sub ErrorHandler: MsgBox "Fehler " & Err.Number End Sub
Sub Testschreiben() 'Filename,Verzeichnis CSVDatei_schreiben "Test1", "" End Sub
Betrifft: AW: Export CSV
von: Manuela
Geschrieben am: 30.09.2019 09:27:04
ROFL
Habe mir jetzt Stunden den Kopf Zerbrochen. Und bin auf einmal nachdem ich den Beitrag geschrieben habe, selber auf die Lösung gekommen.
Für alle die es interessiert:
Spalten = .Cells(10, Columns.Count).End(xlToLeft).Column
Fett = Spaltenanzahl die Exportiert werden soll
Betrifft: AW: Export CSV
von: Torsten
Geschrieben am: 30.09.2019 09:58:39
Hallo Manuela,
da muss ich dich enttaeuschen. Und nur zu deinem Verstaendnis: Diese Zeile gibt dir lediglich die Nummer der letzten benutzten Spalte zurueck. Festgestellt in Zeile 10. Das hat vielleicht bei deinem Test zufaellig gepasst.
Gruss Torsten
Betrifft: AW: Export CSV
von: Armin
Geschrieben am: 30.09.2019 13:12:47
Hallo Manuela,
so sollte es gehen:
Sub CSVDatei_schreiben(fn As String, Verzeichnis As String) Dim StrPath As String, nFileNr Dim Zeilen As Integer Dim Spalten As Integer Dim FileName As String Dim Daten As Variant Dim TS As Range, TZ As Range Const csvSeparator = "," On Error GoTo ErrorHandler StrPath = ActiveWorkbook.Path & "\" & Verzeichnis If Dir(StrPath, vbDirectory) = "" Then MkDir StrPath If Right(StrPath, 1) <> "\" Then StrPath = StrPath & "\" FileName = fn & ".fst" nFileNr = FreeFile With Worksheets(ActiveSheet.Name) 'es wird die aktive Tabelle benutzt Zeilen = .Cells(Rows.Count, 1).End(xlUp).Row Spalten = .Cells(1, Columns.Count).End(xlToLeft).Column Open StrPath & FileName For Output As #nFileNr For Each TZ In .Range("A1").Resize(Zeilen, 1) For Each TS In TZ.Resize(1, Spalten) Daten = Daten & TS.Value & csvSeparator Next Print #nFileNr, Daten Daten = "" Next Close #nFileNr End With Exit Sub ErrorHandler: MsgBox "Fehler " & Err.Number End Sub