Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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

CSV per VBA erstellt: Zu viele ";"

CSV per VBA erstellt: Zu viele ";"
Philipp
Hallo Euch allen!
Ich habe folgendes Problem und ersuche um Eure Hilfe, wie man das lösen kann:
In Excel bereite ich Daten auf, die in eine CSV-Datei exportiert werden, für den Upload in ein Drittsystem.
Mein Hauptproblem ist folgendes: Die Datensätze haben unterschiedliche Längen. Über die selbe CSV-Datei werden Devisenkurse (6 Datenfelder pro Datensatz) und Zinssätze (5 Felder pro Datensatz) eingelesen.
d;24.07.2009;ZAR;10,9133287;10,9287747;10,9442207
z;24.07.2009;AUD;1;3,0175
1. Versuch: Ich habe versucht die CSV-Datei über VERKETTEN zu erstellen. Problem: Jeder Datensatz beginnt und endet mit einem Anführungszeichen, wenn man das Ergebnis im Editor ansieht. Leider habe ich keine Möglichkeit gefunden, diese Anführungszeichen los zu werden.
"d;24.07.2009;ZAR;10,9133287;10,9287747;10,9442207"
"z;24.07.2009;AUD;1;3,0175"
2. Versuch: Über ein Makro - das ich über das Archiv gefunden habe - die CSV-Datei selbst zu erstellen. Jetzt kämpfe ich mit dem Problem, dass ich am Ende der Datensätze ein bzw. zwei ";" zu viel habe:
d;24.07.2009;ZAR;10,9133287;10,9287747;10,9442207;
z;24.07.2009;AUD;1;3,0175;;
Anbei das Makro - vielleicht kann das jemand so anpassen, dass die Anführungszeichen am Ende entfallen!
Danke
LG Philipp
Sub CSVExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
On Error GoTo errorhandler
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFileName:="Test " & .Range("A2") & ".csv", _
FileFilter:="CSV-Datei (*.csv), *.csv")
If sFile = False Then Exit Sub
If Dir(sFile)  "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die  _
bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
If Zeile.Row > .Range("A65536").End(xlUp).Row Then
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export  _
erfolgreich"
Exit Sub
End If
For Each Zelle In Zeile.Cells
If (Zelle.Column = 2) And Zelle  "" Then
strTemp = strTemp & CStr(Format(Zelle, "DD") & "." & Format(Zelle, "MM") _
& "." & Format(Zelle, "YYYY")) & ";"
Else
If Zelle.Column >= 22 And Zelle.Column  "" Then
strTemp = strTemp & CStr(Format(Zelle, "0")) & ";"
Else
strTemp = strTemp & CStr(Zelle.Text) & ";"
End If
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.",   _
_
vbCritical, "Fehlermeldung"
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: CSV per VBA erstellt: Zu viele ";"
27.07.2009 11:30:46
Rudi
Hallo,
Print #1, Left(strTemp, Len(strTemp)-1+(Left(strtTemp,1)="z"))
Gruß
Rudi
AW: CSV per VBA erstellt: Zu viele ";"
27.07.2009 13:58:32
Philipp
Hallo Rudi!
Vielen Dank für die Hilfe - leider klappts aber nocht nicht ganz.
Mit Deiner zusätzlichen Zeile kürzt er jetzt jede Zeile um ein ";" am Schluss, bei den Datensätzen, die mit "z" beginnen, haben ich allerdings zwei ";" am Schluss. Eines ist jetzt weg, wie bekomme ich nun auch das zweite weg?
Danke
LG Philipp
AW: CSV per VBA erstellt: Zu viele ";"
27.07.2009 14:04:19
Rudi
das sollte eigentlich auch weg sein, da
(Left(strtTemp,1)="z")
True bzw. -1 ergibt, wenn z an Anfang.
Gruß
Rudi
AW: CSV per VBA erstellt: Zu viele ";"
27.07.2009 14:55:52
Philipp
Hallo Rudi!
Heureka! Es sollte (Left(strTemp,1)="z") heißen statt (Left(strtTemp,1)="z"), oder? Ein "t" weg und es passt! (Ich muss gestehen, dass ich den Code nicht wirkl. verstehe ...).
Kann das sein, oder war das nur ein Zufallstreffer?
Vielen Dank
LG Philipp
Anzeige
AW: CSV per VBA erstellt: Zu viele ";"
27.07.2009 15:37:24
Rudi
Hallo,
korrekt.
Gruß
Rudi
Du solltest die Variablendeklaration erzwingen (Option Explicit)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige