Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
632to636
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
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
CSV mit Semikolon
05.07.2005 17:23:33
volker
Hai Leute,
wenn ich eine Datei als CSV speicher, ist das Trennzeichen Komma.
Ich möchte jedoch das Semikolon.
Betriebssystem XP, weiss jemand RAt?
DAnke volker

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV mit Semikolon
05.07.2005 17:50:03
EffHa
schau mal in der Systemsteuerung unter Regions- und Sprachoptionen, Register Regionale Einstellungen, Schaltfläche "anpassen", was dort für ein Listentrennzeichen eingestellt ist
Gruß Fritz
AW: CSV mit Semikolon
06.07.2005 06:02:52
volker
Hai,
Das hab ich auch schon versucht. Geht jedoch nicht!!
Hab bei meinem privaten Rechner XP und Office 2000 (gleiche Einstellungen in dr Systzemsteuerung) da gehts?
Volker
AW: CSV mit Semikolon
06.07.2005 06:49:43
volker
Hai Fritz noch ein Nachtrag,
hab unter einem anderen thread meinen Code eingestellt,
wäre nett wenn Du dich da evtl. noch mit reinhängst,
(ps. geh in der Suche auf volker)
DANKE volker
AW: CSV mit Semikolon
06.07.2005 07:26:28
Heinz
Hallo Volker,
das Problem trat mit xl97 auf.
Damals hab ich auf eine eigene Routine zurückgegriffen.
Diese hat den Vorteil, dass man erstens, das Trennzeichen wählen kann und auch den in die Textdatei zu speichernden Bereich. Es muss also nicht die ganze Tabelle gespeichert werden (TB.UsedRange.Rows.Count durch die Zeilenanzahl und To TB.UsedRange.Columns.Count durch die Spaltenanzahl ersetzen) und wenn man die Exceldatei noch als solche braucht, muss man nicht die erzeugte Textdatei schließen und die Exceldatei neuerlich öffnen:

Sub TextDateiErstellen2()
Dim exportfile$, TB As Worksheet, z%, TMP$
exportfile = "C:\test.txt"
Dateinummer = FreeFile
Set TB = ThisWorkbook.ActiveSheet
'Die folgende Zeile erzeugt eine neue Datei mit dem angegebenen Namen
'im angegebenen Pfad
Open exportfile For Output As #Dateinummer
'Die beiden Schleifen beziehen alle belegten Zellen in die zu erstellende Textdatei ein
For z = 1 To TB.UsedRange.Rows.Count
For s = 1 To TB.UsedRange.Columns.Count
'Das Semikolon ist durch jedes beliebige Feldtrennzeichen ersetzbar
TMP = TMP & CStr(TB.Cells(z, s).Text) & ";"
Next s
'Damit am Ende jeder Zeile, also nach der letzten Zelle kein Strichpunkt mehr gesetzt wird,
'muss das letzte Zeichen wieder abgezogen werden
TMP = Left(TMP, Len(TMP) - 1)
'Print fügt hier immer eine Zeile zur bestehenden Textdatei hinzu
Print #Dateinummer, TMP
'Die Variable TMP muss vor der Aufnahme der nächsten Zeile wieder geleert werden
TMP = ""
Next z
Close #Dateinummer
End Sub

Gruß
Heinz
Anzeige
AW: CSV mit Semikolon
06.07.2005 07:50:41
volker
Hai Heinz,
so wie Aussieht hast du das im Griff,
Ich hoffe es ist nicht frech wenn ich hier mal meinen Code noch reinlege. Vielleicht kannst Du mir da helfen den umzubasteln.
Ich benötige die erzeugte File im Excel nicht mehr. (nur noch in einem anderen Programm welches auf Semikolon steht)
'Makro erstellt von v.w. 25.08.03

Sub CSV()
Dim vorigeZelle As Range
Set vorigeZelle = ActiveCell
Application.ScreenUpdating = True
Application.DisplayAlerts = False
'Passwort abfragen
Passwort = InputBox("Passwort?")
If Passwort <> "Chef" Then Exit Sub
'Leerzeilen in der Holzliste löschen Bezugszelle ist Stückzahl (Spalte E)
Dim LgZ%, LZ As Double, X%
With Worksheets("Holzliste").Range("E5")
LgZ = Cells(Rows.Count, 5).End(xlUp).Row
For X = 5 To LgZ
On Error Resume Next
If Not IsEmpty(Cells(X, 5)) And Cells(X, 5) <> 0 Then
Else: Exit For
End If
Next X
LgZ = X
LZ = Rows.Count
End With
Rows((LgZ) & ":" & (LZ)).EntireRow.Delete Shift:=xlUp
Columns("BE:FG").Select
Selection.Delete Shift:=xlToLeft
'TabellenblätterLöschen()
Dim Arbeitsblatt As Worksheet
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name = "Holzliste" Then
Arbeitsblatt.Visible = xlSheetVisible
Else: Arbeitsblatt.Delete
End If
Next Arbeitsblatt
'SpeichernUnter()
Speicher = InputBox("Speicher Name : ")
Dim DName, Dateiname, Pfad
Pfad = "C:\v71\LISTEN"
DName = Speicher
Dateiname = Pfad & "\" & DName & ".csv"
ThisWorkbook.SaveAs Filename:=Dateiname, FileFormat:= _
xlCSV
'Excel in Taskleiste legen
Application.WindowState = xlMinimized
'Workbook schließen
ActiveWorkbook.Close
Application.DisplayAlerts = True
vorigeZelle.Select
End Sub

DANKE volker
Anzeige
AW: CSV mit Semikolon
06.07.2005 08:07:01
Heinz
Hallo Volker,
hier dein Makro:
das With - End With habe ich deaktiviert, da ich keinen Sinn erkennen konnte
vorigeZelle.Select führt vermutlich zu einer Fehlermeldung, da die Datei ja vorher geschlossen wurde - könnte also auch entfernt werden.

Sub CSV()
Dim vorigeZelle As Range, Passwort$
Dim LgZ%, LZ As Double, X%
Dim Arbeitsblatt As Worksheet
Dim DName, Dateiname, Pfad
Dim TB As Worksheet, z%, TMP$, Dateinummer%
Set vorigeZelle = ActiveCell
Application.ScreenUpdating = True
Application.DisplayAlerts = False
'Passwort abfragen
Passwort = InputBox("Passwort?")
If Passwort <> "Chef" Then Exit Sub
'Leerzeilen in der Holzliste löschen Bezugszelle ist Stückzahl (Spalte E)
'  With Worksheets("Holzliste").Range("E5")
LgZ = Cells(Rows.Count, 5).End(xlUp).Row
For X = 5 To LgZ
On Error Resume Next
If Not IsEmpty(Cells(X, 5)) And Cells(X, 5) <> 0 Then
Else: Exit For
End If
Next X
LgZ = X
LZ = Rows.Count
'  End With
Rows((LgZ) & ":" & (LZ)).EntireRow.Delete Shift:=xlUp
Columns("BE:FG").Delete Shift:=xlToLeft
'TabellenblätterLöschen()
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name = "Holzliste" Then
Arbeitsblatt.Visible = xlSheetVisible
Else: Arbeitsblatt.Delete
End If
Next Arbeitsblatt
'SpeichernUnter()
Speicher = InputBox("Speicher Name : ")
Pfad = "C:\v71\LISTEN"
DName = Speicher
Dateiname = Pfad & "\" & DName & ".csv"
'    ThisWorkbook.SaveAs Filename:=Dateiname, FileFormat:= xlCSV
Dateinummer = FreeFile
Set TB = ThisWorkbook.ActiveSheet
'Die folgende Zeile erzeugt eine neue Datei mit dem angegebenen Namen
'im angegebenen Pfad
Open Dateiname For Output As #Dateinummer
'Die beiden Schleifen beziehen alle belegten Zellen in die zu erstellende Textdatei ein
For z = 1 To TB.UsedRange.Rows.Count
For s = 1 To TB.UsedRange.Columns.Count
'Das Semikolon ist durch jedes beliebige Feldtrennzeichen ersetzbar
TMP = TMP & CStr(TB.Cells(z, s).Text) & ";"
Next s
'Damit am Ende jeder Zeile, also nach der letzten Zelle kein Strichpunkt mehr gesetzt wird,
'muss das letzte Zeichen wieder abgezogen werden
TMP = Left(TMP, Len(TMP) - 1)
'Print fügt hier immer eine Zeile zur bestehenden Textdatei hinzu
Print #Dateinummer, TMP
'Die Variable TMP muss vor der Aufnahme der nächsten Zeile wieder geleert werden
TMP = ""
Next z
Close #Dateinummer
'Excel in Taskleiste legen
Application.WindowState = xlMinimized
'Workbook schließen
ActiveWorkbook.Close
Application.DisplayAlerts = True
vorigeZelle.Select
End Sub

Gruß
Heinz
Anzeige
DANKE
06.07.2005 10:16:39
volker
Hai Heinz,
DANKE sieht gut aus!!!
Du warst mir eine sehr große Hilfe, Gruss volker
AW: CSV mit Semikolon
06.07.2005 07:52:29
volker
Hai Heinz,
so wie Aussieht hast du das im Griff,
Ich hoffe es ist nicht frech wenn ich hier mal meinen Code noch reinlege. Vielleicht kannst Du mir da helfen den umzubasteln.
Ich benötige die erzeugte File im Excel nicht mehr. (nur noch in einem anderen Programm welches auf Semikolon steht)
'Makro erstellt von v.w. 25.08.03

Sub CSV()
Dim vorigeZelle As Range
Set vorigeZelle = ActiveCell
Application.ScreenUpdating = True
Application.DisplayAlerts = False
'Passwort abfragen
Passwort = InputBox("Passwort?")
If Passwort <> "Chef" Then Exit Sub
'Leerzeilen in der Holzliste löschen Bezugszelle ist Stückzahl (Spalte E)
Dim LgZ%, LZ As Double, X%
With Worksheets("Holzliste").Range("E5")
LgZ = Cells(Rows.Count, 5).End(xlUp).Row
For X = 5 To LgZ
On Error Resume Next
If Not IsEmpty(Cells(X, 5)) And Cells(X, 5) <> 0 Then
Else: Exit For
End If
Next X
LgZ = X
LZ = Rows.Count
End With
Rows((LgZ) & ":" & (LZ)).EntireRow.Delete Shift:=xlUp
Columns("BE:FG").Select
Selection.Delete Shift:=xlToLeft
'TabellenblätterLöschen()
Dim Arbeitsblatt As Worksheet
For Each Arbeitsblatt In Worksheets
If Arbeitsblatt.Name = "Holzliste" Then
Arbeitsblatt.Visible = xlSheetVisible
Else: Arbeitsblatt.Delete
End If
Next Arbeitsblatt
'SpeichernUnter()
Speicher = InputBox("Speicher Name : ")
Dim DName, Dateiname, Pfad
Pfad = "C:\v71\LISTEN"
DName = Speicher
Dateiname = Pfad & "\" & DName & ".csv"
ThisWorkbook.SaveAs Filename:=Dateiname, FileFormat:= _
xlCSV
'Excel in Taskleiste legen
Application.WindowState = xlMinimized
'Workbook schließen
ActiveWorkbook.Close
Application.DisplayAlerts = True
vorigeZelle.Select
End Sub

DANKE volker
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige