Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler beim Speichern in CSV- oder TXT-Datei

Fehler beim Speichern in CSV- oder TXT-Datei
12.11.2018 21:55:30
Thomas
Hallo zusammen,
habe ein Problem beim Speichern von Daten aus Excel in eine CSV- oder TXT-Datei.
Hier ein Beispiel:
"00166000272757;12.11.2018;06:19:54;0010109;03;325;001;001;DPD Deutschland GmbH,Gewerbegebiet,1,DE,;
00000000;0000000;;16.30;001+++++++++++++++++++;
010.015.104.244;;0000;DPD Deutschland GmbH;Gewerbegebiet;1;09337;Callenberg;;;;"
00166000272757;12.11.2018;08:07:31;0010109;13;325;001;001;;;0079002;;0.00;001+++++++++++++++++++;
010.015.104.244;;0000;DPD Deutschland GmbH;Gewerbegebiet;1;09337;Callenberg;KRAMER;;;
Insgesamt sind es ca. 60.000 bis 100.000 Zeilen. Manchmal macht Excel beim speichern Gänsefüßchen an den Anfang und an das Ende der Zeile, manchmal nicht.
Beim Import in Access entstehen zwei Fehler:
1. sage ich dem Import-Manager, dass es keinen Textqualifier gibt, dann steht im ersten und im letzten Feld je ein Gänsefüßchen zusätzlich. Sage ich ihm, dass es Gänsefüßchen als Textqualifier gibt, dann interpretiert er alles in den Gänsefüßchen als ein Feld.
Beides ist Mist.
Hier der Code, mit dem ich speichere:
Application.DisplayAlerts = False
'ActiveWorkbook.SaveAs Filename:="D:\Datenbanken\BerichtNeu\Bericht1.csv", FileFormat:=6 'csv
ActiveWorkbook.SaveAs Filename:="D:\Datenbanken\BerichtNeu\Bericht1.txt", FileFormat:=-4158 'txt
Application.DisplayAlerts = True
Was mache ich falsch?
Danke
Thomas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 07:24:10
Armin
Guten Morgen Thomas,
mit CSV-Dateien habe ich die tollsten Sachen erlebt. Vor allem wenn Du sie aus Excel direkt speicherst (mit Boardmittel) hängt das, was rauskommt, von vielen Gegebenheiten ab.
Ich Speichere sie deshalb lieber mit einem Makro ab, denn dort bestimme ich das Format. Allerdings sollte man die Range vorgeben. Deshalb brauchte man einen Excel-Schnipsel um die Ausgabe zu steuern. Wenn Du Interesse hast lade ein Beispiel hoch.
Gruß Armin
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 08:48:50
Thomas
Hallo Armin,
vielen Dank für die angebotene Hilfe.
Im Anhang habe ich ein kleines Schnipsel hochgeladen. Hoffentlich reicht das.
Was man schon sehr gut erkennt ist, dass es immer die gleiche Anzahl Felder sind, auch wenn sie teilweise leer sind.
https://www.herber.de/bbs/user/125350.xlsx
Danke
Thomas
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 10:29:58
Armin
Hallo Thomas,
das brauche ich natürlich nicht!
Eine CSV hattest Du ja schon gepostet.
Ein Schnipsel aus Deinem Sheet von dem eine CSV erstellt werden soll! Damit man sehen kann was alles in der CSV soll.
Gruß Armin
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 11:20:18
Thomas
Hallo Armin, das ist die Ausgangsdatei, die als CSV-Datei gespeichert werden soll.
Mit einer HTML-Abfrage auf eine Datenbank erhalte ich diese Daten in dieser Form.
Nun will ich diese einfach als CSV-Datei speichern. Oder als TXT-Datei.
Die Spalte "A" umfasst praktisch alle Felder der Rückgabe aus der Datenbank.
Danke
Thomas
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 12:31:10
Armin
Hallo Thomas,
damit ist aber völlig klar, diese Datei ist KEINE Csv-Datei!! Das Excel das überhaupt liest ist schon ein Wunder das ich nicht erklären kann. Ich bilde mir ein mich mit csv-Daten auszukennen, aber das ist mir noch nicht unter gekommen.
Ich habe jetzt versucht wie man das bewerkstelligen könnte.
Du schreibst, dass Du diese Datei als HTML bekommst. Wie wird das dann eine Excel-Datei? Möglicherweise liegt dort der Fehler.
Die Datei hat 25 Abschnitte und im letzten steht bei einigen
42:1:9000:9:9000:100::0:050003000300:001000100010
Gehört das auch dazu?
Kannst Du eine Originaldatei zur Verfügung stellen?
Gruß Armin
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 12:47:13
Thomas
Hallo Armin, eine kleine VBA-Sequenz holt die Daten via HTML von einem Server. Dieser übergibt sie im CSV-Format mit Trennzeichen Semikolon. Diese Daten werden dann stumpf in der Zelle A1 abgelegt.
Bin jetzt einen Schritt weiter durch Deine Bemerkung:
"Ich Speichere sie deshalb lieber mit einem Makro ab, denn dort bestimme ich das Format."
Jetzt splitte ich die Daten gleich in der Excel-Tabelle in die einzelnen Spalten, setze auch gleich den richtigen Datentyp drauf und habe jetzt das Problem, dass wenn ich sie aus dem VBA-Tool heraus speichere, dass als Trennzeichen nicht das Semikolon sondern das Komma verwendet wird. Speichere ich sie "von Hand", dann sind da Semikolons drin.
Wie bekomme ich das hin, dass da auch Semikolons verwendet werden, wenn ich sie mit dem VBA speichere.
Danke
Thomas
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 12:56:17
Armin
Hallo Thomas,
lade mal den Code hoch den Du dafür verwendest.
Gruß Armin
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 13:15:03
Thomas
Hallo Armin, hier der Code:
'Splitten
Sheets("Tabelle1").Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited,  _
_
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 1), Array(3, 1), Array(4, 2), Array(5, 2), Array(6, 2), _
Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array( _
13, 1 _
), Array(14, 1), Array(15, 2), Array(16, 2), Array(17, 2), Array(18, 2), Array(19, 2),  _
Array _
(20, 2), Array(21, 2), Array(22, 2), Array(23, 2), Array(24, 1), Array(25, 2), Array(26, _
1)) _
, TrailingMinusNumbers:=True
Columns("A:A").EntireColumn.AutoFit
'Speichern
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="D:\Datenbanken\BerichtNeu\Bericht1.csv", FileFormat:=6 'csv
Application.DisplayAlerts = True
Danke
Thomas
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 13:38:12
Armin
Hallo Thomas,
das ist ja der Code vom MR. Verwende doch einmal diesen hier:
Sub CSVDatei_schreiben()
Dim strVerzeichnis As String, nFileNr
Dim K As Integer, N As Integer
Dim FileName As String
Dim Daten As Variant
Dim Tb As Range
On Error GoTo ErrorHandler
strVerzeichnis = ActiveWorkbook.Path & "\"
FileName = "CSV_Daten"   'kann man auch modifizieren z.Bsp. aus Zelle
nFileNr = FreeFile
Set Tb = Worksheets(ActiveSheet.Name).Range("A1")
Open strVerzeichnis & FileName & ".csv" For Output As #nFileNr
For N = 1 To Tb.Cells(Rows.Count, 1).End(xlUp).Row
For K = 0 To 26   'Anzahl der Spalten die Ausgegeben werden sollen
Daten = Daten & Tb.Offset(N - 1, K).Value & ";"
Next
Print #nFileNr, Daten
Daten = ""
Next N
Close #nFileNr
ErrorHandler:
Set Tb = Nothing
End Sub
Den Namen des Files kannst Du auch verändern! Starten wenn die Tabelle mit Werten die aktuelle ist.
Gruß Armin
Anzeige
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 15:16:03
Thomas
Hallo Armin,
vielen Dank. So funktioniert es einwandfrei.
Lediglich die Variable "N" musste ich auf 'double' setzen, sonst kam ein Überlauf.
Aber sonst alles palletti.
Danke
Thomas
:-) :-) :-)
AW: Fehler beim Speichern in CSV- oder TXT-Datei
13.11.2018 15:32:30
Armin
Hallo Thomas,
dafür braucht es nur Long! Double ist nicht notwendig.
Gruß Armin

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige