AW: excel - csv ( - visio)
20.06.2010 09:18:17
fcs
Hallo Raphael,
zur CSV-Problematik hat Holger ja schon was geschrieben.
Wenn du die Anführungszeichen in den Zellen mit eingibst, dann macht Excel daraus aus Kompatibilitätsgründen am Anfang und Ende des Textes 3 Anführungszeichen.
In der von dir gewünschten Mischform -teilweise mit, teilweise ohne Anführungszeichen- bekommt man ein entsprechendes Text-File nur per Makro aus Excel exportiert.
Für welche Zwecke willst du die Liste in Viso denn öffnen/verwenden?
Gruß
Franz
'Makros zum Export von Daten in eine Text-Datei
Sub CSV_erste_Zeile()
'1. Zeile Spalte 1 bis 4 im aktiven Tabellenblatt in eine CSV/Text-Datei schreiben
Dim sCSV_Datei As Variant, wks As Worksheet
Dim Spalte As Long, Zeile As Long, FF As Integer
Dim sText As String
Const sSep As String = "," 'Trennzeichen
'Dateiname CSV-Datei
sCSV_Datei = Application.GetSaveAsFilename(InitialFileName:="CSV_Shape", _
Filefilter:="CSV-Text(*.csv;*.txt),*.csv;*.txt", _
Title:="Bitte Namen der CSV/Text-Datei eingeben/auswählen")
If sCSV_Datei = False Then Exit Sub
Set wks = ActiveSheet
Zeile = 1
FF = FreeFile()
Open sCSV_Datei For Output As FF
With wks
For Spalte = 1 To 4
Select Case Spalte
Case 1
sText = .Cells(Zeile, 1).Text
Case Else
sText = sText & sSep & """" & .Cells(Zeile, Spalte).Text & """"
End Select
Next Spalte
Print #FF, sText
End With
Close FF
End Sub
Sub CSV_Alle_Zeilen()
'Alle Daten-Zeilen Spalte 1 bis 4 des aktiven Tabellenblatts in CSV/Text-Datei schreiben
Dim sCSV_Datei As Variant, wks As Worksheet
Dim Spalte As Long, Zeile As Long, FF As Integer
Dim sText As String
Const sSep As String = "," 'Trennzeichen
'Dateiname CSV-Datei
sCSV_Datei = Application.GetSaveAsFilename(InitialFileName:="CSV_Shape", _
Filefilter:="CSV-Text(*.csv;*.txt),*.csv;*.txt", _
Title:="Bitte Namen der CSV/Text-Datei eingeben/auswählen")
If sCSV_Datei = False Then Exit Sub
Set wks = ActiveSheet
Zeile = 1
FF = FreeFile()
Open sCSV_Datei For Output As FF
With wks
For Zeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
For Spalte = 1 To 4
Select Case Spalte
Case 1
sText = .Cells(Zeile, 1).Text
Case Else
sText = sText & sSep & """" & .Cells(Zeile, Spalte).Text & """"
End Select
Next Spalte
Print #FF, sText
Next Zeile
End With
Close FF
End Sub