Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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
Tabellenblatt als csv speichern
03.12.2018 12:42:55
Jürgen
Hallo zusammen,
ich stehe vor dem Problem, dass ich eine Exceldatei habe, aus dem ich ein Tabellenblatt mit dem Namen "Export" als csv in ein bestimmtes Verzeichnis speichern möchte. Das Ganze soll dann auch noch als "CSV-UTF (durch Trennzeichen getrennt)" gespeichert werden.
Im Internet habe ich das nachfolgende Makro gefunden, welches eigentlich recht gut passt....nur fehlt mir dazu noch folgendes:
- Abfrage nach dem Verzeichnisnamen, oder besser, die Speicherung soll immer in den Pfad: "j:\export\" erfolgen
- Das Dateiformat soll wie oben erwähnt automatisch im Format "CSV-UTF (durch Trennzeichen getrennt)" erfolgen
Weiß jemand von euch, wie man das hier noch einbauen kann:
Sub ExportCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Dim blnAnfuehrungszeichen As Boolean
strMappenpfad = ActiveWorkbook.FullName
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, " _
CSV-Export") = vbYes Then
blnAnfuehrungszeichen = True
Else
blnAnfuehrungszeichen = False
End If
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If blnAnfuehrungszeichen = True Then
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub
vielen Dank im voraus.
viele Grüße
Jürgen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Für UTF8 - probiere es mal...
03.12.2018 13:13:09
Case
Hallo, :-)
... so der Spur nach: ;-)
Option Explicit
Public Sub Main1()
ThisWorkbook.Worksheets("Export").Copy
ActiveWorkbook.SaveAs Filename:="C:\Temp\TestUTF8.csv", FileFormat:=xlCSVUTF8
ActiveWorkbook.Close False
End Sub
Pfad anpassen.
Servus
Case

AW: Für UTF8 - probiere es mal...
03.12.2018 13:38:02
Jürgen
Hi,
leider bin ich VBA-mäßig nicht so richtig fit. Ich weiß irgendwie grad nicht, wie ich das in meinen Code einbauen muss. Kannst Du mir da bitte nochmal helfen ?
viele Grüße
Jürgen
Du baust nichts ein, sondern...
03.12.2018 13:39:49
Case
Hallo, :-)
... nimmst nur diesen Code - Pfad- und Dateiname anpassen und fertig. ;-)
Servus
Case

Anzeige
AW: Du baust nichts ein, sondern...
03.12.2018 13:50:24
Jürgen
Hi Case,
du meinst, der Code ersetzt meinen ganzen Code ?
Das wäre insofern unpraktisch, weil ich die Abfragen nach dem Trennzeichen und ob die Werte in Anführungsstrichen exportiert werden soll, unbedingt benötige.
viele Grüße
Jürgen
Ja - das geht in Excel 2010...
03.12.2018 14:08:49
Case
Hallo, :-)
... noch nicht. :-(
Der letzte Eintrag in folgendem Link sieht vielversprechend aus: ;-)
UTF8...
Servus
Case

AW: Ja - das geht in Excel 2010...
03.12.2018 14:32:26
Jürgen
Hi,
hm, ok....Lücke in Excel entdeckt :-)
Aber ginge es vielleicht die Datei einfach nur als csv zu speichern ohne diese UTF-8 ? Wichtig wäre mir auf jeden Fall dass der Pfad automatisch drin steht und der Dateiname genommen wird wie das Excelfile zu dem Zeitpunkt heißt.
viele Grüße
Jürgen
Anzeige
Das würde dann so...
03.12.2018 14:46:10
Case
Hallo, :-)
... klappen: ;-)
Option Explicit
Public Sub Main1()
ThisWorkbook.Worksheets("Export").Copy
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & Left(ThisWorkbook.Name, _
(InStrRev(ThisWorkbook.Name, ".") - 1)) & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub
Nur noch den Pfad anpassen - mit abschließendem Backslash.
Servus
Case

275 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige