Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Export CSV - überstehende Delimiter

Export CSV - überstehende Delimiter
14.08.2020 14:54:58
Nilo
Hallo zusammen,
ich habe ein minderschweres Problem und auch die Suche hilft nicht da ich nicht weiß wonach ich suchen soll :)
Problem:
Ich möchte ein Sheet als csv exportieren = ok davon gibt es genug Beispiele
Ich benötige aber einen csv export der pro Zeile prüft wo das Ende einer Zeile ist = letzte befüllte Zelle in Zeile
und auch im csv nur bis dort die Delimiter schreibt.
Keins der gefundenen Beispiele gibt das her und ich weiß nicht wie ich die so umbauen kann dass es geht.
Aktuell so: weil andere Zellen im Sheet über E hinweg bis FK was drin haben
A,B,C,D,,,,,,,,,,,,,,,,,,,usw
A,,C,D,E,,,,,,,,,,,,,,,,,,usw
Ich brauche das so:
A,B,C,D
A,,C,D,E
Ich hoffe das ist verständlich
Danke mal für eure Hilfe im Voraus, bleibt gesund und Gruß
Nilo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Export CSV - überstehende Delimiter
14.08.2020 15:43:31
UweD
Hallo
dann Zeilenweise in Datei schreiben

Sub CSV_Spezial()
Dim Datei As String, Trenner As String, LR As Long, LC As Integer, i As Long
Dim Sp As Integer, Z1 As Integer, TText As Variant, WF
Trenner = ","
Sp = 1 'Spalte ab A
Z1 = 1 'Daten ab Zeile 1 'ggf Überschrift
Datei = "E:\Temp\Test.csv"
Set WF = WorksheetFunction
With Sheets("Tabelle1")
LR = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
Close #1
Open Datei For Output As 1
For i = Z1 To LR
LC = .Cells(i, .Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
TText = WF.Transpose(WF.Transpose(.Cells(i, Sp).Resize(1, LC - Sp + 1)))
Print #1, Join(TText, Trenner)
Next
Close #1
End With
End Sub

LG UweD
Anzeige
Laufzeitfehler 13 - Typen unverträglich
14.08.2020 16:40:42
Nilo
Hallo Uwe,
erstmal Danke für die schnelle Antwort und Hilfe.
Es läuft eine Weile schreibt mir auch 3915 zeilen in eine CSV, bricht dann aber ab
Laufzeitfehler 13 hier:
TText = WF.Transpose(WF.Transpose(.Cells(i, Sp).Resize(1, LC - Sp + 1)))
Insgesamt sind es jedoch 4593 Zeilen
In der trotz Error erstellten CSV sind Delimiter auch nach dem letzen Eintrag einer Zeile enthalten!
Danke nochmal
AW: Laufzeitfehler 13 - Typen unverträglich
14.08.2020 16:50:23
UweD
Hallo
Der Fehler tritt auf, wenn es nur einen Wert pro Zeile gibt.
Der kann abgefangen werden.

TText = WF.Transpose(WF.Transpose(.Cells(i, Sp).Resize(1, LC - Sp + 1)))
If LC - Sp + 1 > 1 Then
Print #1, Join(TText, Trenner)
Else
Print #1, TText
End If

Das mit den Kommas am Ende...
Sind da noch Formeln in den hinteren Zellen, die ggf "" ausgeben?
LG UweD
Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
14.08.2020 17:11:59
Nilo
Hi,
ich habe die Spalten mal an diversen Stellen Auf oder Absteigend sortiert etc.
Er bricht immer bei Zeile 3915 ab
Hab auch mal alle Daten als kopiert und als Text in einen Neue Tabelle kopiert.
An meinem File kann ich nichts erkennen..
Es liegt an meiner Tabelle! Das Skript ist mega :)
14.08.2020 18:41:25
Nilo
aber warum weiß ich nicht, zu viele Zeichen oder irgendwo was fischig.
Ich muss die Daten nochmal prüfen
Vielen Dank Uwe
Bg
Nilo
AW: Es liegt an meiner Tabelle! Das Skript ist mega :)
15.08.2020 12:19:29
Daniel
Hi
enthält die Exceltabelle Fehlerwerte (#NV, #Wert, #Div/0)?
das könnte auch eine Ursache für den Laufzeitfehler 13 sein.
gruß Daniel

172 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige