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!
Private Sub Workbook_Open()
ChDir "c:\temp"
Workbooks.Open Filename:="c:\temp\test.xls"
ActiveWorkbook.SaveAs Filename:="c:\temp\test.csv", _
FileFormat:=xlCSV, CreateBackup:=False
End Sub
2. Möglichkeit
Problem:
Hier wird beim speichern der "Speichern unter" Dialog angezeigt,
Es sollte jedoch an dieser Stelle automatisch abspeichern.
Sub Sheet_Nach_CSVDatei()
'hierbei bleibt die Formatierung der Zellen so wie sie angezeigt wird.
'Es muss alles so formatiert sein wie es später In der CSV sein soll.
Dim vntFileName As Variant
Dim lngFn As Long
Dim rngRow As Excel.Range
Dim rngCell As Excel.Range
Dim strDelimiter As String
Dim strText As String
Dim strTextCell As String
Dim bolErsteSpalte As Boolean
Dim rngColumn As Excel.Range
Dim wksQuelle As Excel.Worksheet
strDelimiter = ";" 'deutsches CSV-Format: ";", Englishes CSV-Format: ","
vntFileName = Application.GetSaveAsFilename("Test.csv", _
FileFilter:="CSV-File (*.csv),*.csv")
If vntFileName = False Then Exit Sub
Set wksQuelle = ActiveWorkbook.Worksheets("Tabelle1") 'Beispiel oder: = ActiveSheet
lngFn = FreeFile
Open vntFileName For Output As lngFn
For Each rngRow In wksQuelle.UsedRange.Rows
strText = ""
bolErsteSpalte = True
For Each rngCell In rngRow.Columns
strTextCell = rngCell.Text 'Text! inclusive dem NumberFormat der Zelle
If InStr(1, strTextCell, strDelimiter, 0) Then '## wenn alle Zellen mit " " eingeschlossen werden sollen zeile auskommentieren
'bewirkt das Werte die den Delimiter enthalten (was eigentlich nicht sein sollte) mit " " eingeschlossen werden
strTextCell = Chr(34) & strTextCell & Chr(34)
End If '##
If bolErsteSpalte Then
strText = strTextCell
bolErsteSpalte = False
Else
strText = strText & strDelimiter & strTextCell
End If
Next
Print #lngFn, strText
Next
Close lngFn
End Sub
Ich hoffe ihr könnt mir hier weiterhelfen!
Gruß
aiwa002
[Edit Biber] Zeilennummer drancodeformatiert. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173895
Url: https://administrator.de/contentid/173895
Ausgedruckt am: 05.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
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 verwendet hättest) durchEs sollte jedoch an dieser Stelle automatisch abspeichern.
vntFileName = "c:\temp\test.csv"
bastla