gelöst Xls to CSV mit makro
Hallo,
ich muss eine Excel Datei automatisch per Batch Job in eine CSV Datei umwandeln.
Natürlich das Ganze voll automatisch.
Das ganze soll über ein Makro in Excel umgesetz werden.
Hierzu habe ich bereits zwei Möglichkeiten mit Problemen
1. Möglichkeit
Problem:
Leider werden hier als Trennzeichne "," verwendet.
Es werden jedoch ";" als Trennzeichen benötigt!
2. Möglichkeit
Problem:
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
Ich hoffe ihr könnt mir hier weiterhelfen!
Gruß
aiwa002
[Edit Biber] Zeilennummer drancodeformatiert. [/Edit]
ich muss eine Excel Datei automatisch per Batch Job in eine CSV Datei umwandeln.
Natürlich das Ganze voll automatisch.
Das ganze soll über ein Makro in Excel umgesetz werden.
Hierzu habe ich bereits zwei Möglichkeiten mit Problemen
1. Möglichkeit
Problem:
Leider werden hier als Trennzeichne "," verwendet.
Es werden jedoch ";" als Trennzeichen benötigt!
01.
Private Sub Workbook_Open()
02.
ChDir "c:\temp"
03.
Workbooks.Open Filename:="c:\temp\test.xls"
04.
ActiveWorkbook.SaveAs Filename:="c:\temp\test.csv", _
05.
FileFormat:=xlCSV, CreateBackup:=False
06.
End Sub
2. Möglichkeit
Problem:
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
01.
Sub Sheet_Nach_CSVDatei()
02.
'hierbei bleibt die Formatierung der Zellen so wie sie angezeigt wird.
03.
'Es muss alles so formatiert sein wie es später In der CSV sein soll.
04.
Dim vntFileName As Variant
05.
Dim lngFn As Long
06.
Dim rngRow As Excel.Range
07.
Dim rngCell As Excel.Range
08.
Dim strDelimiter As String
09.
Dim strText As String
10.
Dim strTextCell As String
11.
Dim bolErsteSpalte As Boolean
12.
Dim rngColumn As Excel.Range
13.
Dim wksQuelle As Excel.Worksheet
14.
15.
strDelimiter = ";" 'deutsches CSV-Format: ";", Englishes CSV-Format: ","
16.
17.
vntFileName = Application.GetSaveAsFilename("Test.csv", _
18.
FileFilter:="CSV-File (*.csv),*.csv")
19.
If vntFileName = False Then Exit Sub
20.
21.
Set wksQuelle = ActiveWorkbook.Worksheets("Tabelle1") 'Beispiel oder: = ActiveSheet
22.
23.
lngFn = FreeFile
24.
Open vntFileName For Output As lngFn
25.
For Each rngRow In wksQuelle.UsedRange.Rows
26.
strText = ""
27.
bolErsteSpalte = True
28.
For Each rngCell In rngRow.Columns
29.
strTextCell = rngCell.Text 'Text! inclusive dem NumberFormat der Zelle
30.
If InStr(1, strTextCell, strDelimiter, 0) Then '## wenn alle Zellen mit " " eingeschlossen werden sollen zeile auskommentieren
31.
'bewirkt das Werte die den Delimiter enthalten (was eigentlich nicht sein sollte) mit " " eingeschlossen werden
32.
strTextCell = Chr(34) & strTextCell & Chr(34)
33.
End If '##
34.
If bolErsteSpalte Then
35.
strText = strTextCell
36.
bolErsteSpalte = False
37.
Else
38.
strText = strText & strDelimiter & strTextCell
39.
End If
40.
Next
41.
Print #lngFn, strText
42.
Next
43.
Close lngFn
44.
45.
End Sub
Gruß
aiwa002
[Edit Biber] Zeilennummer drancodeformatiert. [/Edit]
2 Antworten
- LÖSUNG bastla schreibt am 29.09.2011 um 11:43:15 Uhr
- LÖSUNG aiwa002 schreibt am 29.09.2011 um 11:55:11 Uhr
LÖSUNG 29.09.2011 um 11:43 Uhr
Hallo aiwa002!
Grüße
bastla
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
Dann ersetze einfach die entsprechende Stelle im Code (ich hätte ja die Zeilennummer(n) angegeben, wenn Du eine passende Formatierung verwendet hättest) durchEs sollte jedoch an dieser Stelle automatisch abspeichern.
vntFileName = "c:\temp\test.csv"
bastla
LÖSUNG 29.09.2011 um 11:55 Uhr
Hat super geklappt, Danke!
Kann manchmal so einfach sein
Kann manchmal so einfach sein
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte