[Excel 2003] CSV mit zu vielen Semikolons

Lasersword

Cadet 4th Year
Registriert
Jan. 2008
Beiträge
123
Hallo CBler,

ich hab hier ein kleines Problem.

In einer Excel-Tabelle werden über eine Userform Werte im Bereich von A1 bis BD1 übertragen.

Jetzt will ich eine CSV-Datei erstellen (speichern unter...) was auch wunderbar
funktioniert.

Allerdings habe ich in der CSV-Datei (mit Editor geöffnet) meine Werte PLUS
ca. 150 weiteren Semikolons.

Da die CSV-Datei in einer externen Datenbank hochgeladen werden soll, würden
die zusätzlichen Semikolons zu Fehlermeldungen führen.

Wie kann ich Excel sagen, dass ich nur die Werte von A1 bis BD1 in der CSV-Datei brauche?

Hier noch zur Info:

Ich habe alle restliche Spalten und Zeilen markiert und "Inhalte löschen" ausgeführt,
damit ggf. vorhandene Werte raus sind.
Danach wurden alle unnötigen Spalten und Zeilen von mir ausgeblendet.

Hat einer einen Lösungsvorschlag?

Vielen Dank im Voraus.

Gruß,

Lasersword
 
Ich würd mal prüfen ob in den Spalten ab BD wirklich keine Werte drin stehen, bzw diese markieren und löschen.

Passiert schonmal dass man iregndwo weit draussen noch nen Leerzeichen oder so eingetragen hat wodurch die Zeilen/Spalten gefüllt sind
 
Ich habe alle restliche Spalten und Zeilen markiert und "Inhalte löschen" ausgeführt,
damit ggf. vorhandene Werte raus sind.
Danach wurden alle unnötigen Spalten und Zeilen von mir ausgeblendet.

Hat einer einen Lösungsvorschlag?
Ja. Lösche die gesamten Spalten und nicht nur den Inhalt. Das sollte den gewünschten Erfolg bringen. Nach dem löschen sind zwar die Spalten wieder da, aber sie sind wirklich leer.
 
Guten Morgen cpt. Nemo,

hab es soeben ausprobiert.
Aber es funktioniert leider nicht.
Hab immer noch zu viele Semikolons.

Gibt es eine Möglichkeit (VBA?), wie ich den
Bereich auf A1:BD1 festlegen kann?

Gruß,

Manuel
 
Du kannst angeben, welchen Bereich der Benutzer auswählen darf, aber ob das dein Problem behebt wage ich zu bezweifeln.
Öffne mit Alt + F11 den VBA-Editor, wähle links im Projektexplorer (Strg + R) dein Tabellenblatt und gib im Eigenschaftenfenster (F4) bei ScrollArea den gewünschten Bereich A1:BD1 an.
vba_scrollarea.png


Diese zusätzlichen ; stehen also (auch wenn Excel scheinbar leer ist) noch rechts neben der Spalte BD?
 
Zuletzt bearbeitet:
Moin Manuel,

("Moin" steht nivhjt für "Guten Morgen" sondern ist ein ganztägiger Gruß aus Norddeutschland)
Lasersword schrieb:
Gibt es eine Möglichkeit (VBA?), wie ich den
Bereich auf A1:BD1 festlegen kann?
Ja, versuche es mal so:
Code:
Option Explicit

Sub csvExport()
   Dim CsvFile As String
   Dim MyRange As Range
   Dim Zeile As Object
   Dim Zelle As Object
   Dim strZeile As String
   
   On Error Resume Next
   CsvFile = "c:\CsvDatei.csv"               'Anpassen
   Set MyRange = ActiveSheet.Range("A1:BD1") 'Bei Bedarf anpassen
   
   Open CsvFile For Output As #1
   For Each Zeile In MyRange.Rows
      For Each Zelle In Zeile.Cells
         strZeile = strZeile & Zelle.Value & ";"
      Next Zelle
      
      Print #1, Left(strZeile, Len(strZeile) - 1) ' Letztes Semikolon entfernen
      strZeile = ""
   Next Zeile
   Close #1
End Sub
Das sollte hinhauen, den vorgegebenen Bereich habe ich erst einmal verwendet.
 
Moin,

(auch wenn ich aus NRW komme, ist mir der Ausdruck bekannt :) )

@Mr. Snoot: Danke für den Tipp, hat aber leider nicht funktioniert.
Aber dass hast du ja auch vermutet ;)

@cpt. Nemo: Dein Makro bezieht sich ja auf eine bereits erstellte CSV-Datei.
Hab es ausprobiert, aber der hat mir meine Daten gelöscht und
nur noch Semikolons übergelassen.

Da Excel scheinbar ein Problem damit hat, wenn irgendwo in einer Zelle mal was gefüllt war,
hatte ich ja zuerst alles ab A2:ZZ65536 gelöscht und anschließend alles von BE:ZZ.
Dass hatte ja leider keinen Erfolg.

Also habe ich jetzt einfach alle Zellen und Spalten gelöscht und anschließend die Formatierung neu vergeben.
Danach hat es funktioniert.

Aber Danke noch mal für eure Hilfe.
Wenn es um VBA geht, zähle ich weiterhin auf euch ;)

Gruß,

Lasersword
 
Moin LaserWord,

na ja, NRW ist ja auch nicht so weit weg :cool_alt:.
Dein Makro bezieht sich ja auf eine bereits erstellte CSV-Datei.
Nein, der Ausgang sind Daten in einer existierenden Excel-Datei.

Und ja, wenn die Ausgabedatei existiert, wird diese ohne Nachfrage überschrieben. Das kannst du mit einer InputBox verhindern.

Dass allerdings wiederum nur Semikola in der *.csv sind, das irritiert mich schon. Ich hatte den Code (natürlich) vorher getestet und es lief einwandfrei. Ich schätze mal, dass "ActiveSheet" ein leeres Blatt war und das führt dann dazu. Einfach anpassen auf beispielsweise
Code:
Sheets("Tabelle1")..Range("A1:BD1")
dann sollte es klappern ;).
 
Zurück
Oben