Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Export CSV


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

'Das ist der Aufruf
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



Beiträge aus dem Excel-Forum zum Thema "Export CSV"