Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
xls in csv umwandeln und per Mail versenden
07.11.2016 14:55:07
Marcus
Hallo zusammen,
ich habe folgendes Problem:
Ich speichere ein geöffnetes Tabellenblatt als csv ab, öffne die gespeicherte Datei und versende diese als Mail.
Wird die Datei als Mailanhang geöffnet habe ich "Kommas" als Trennzeichen (was nicht gewünscht ist). Öffne ich die
gespeicherte Datei im Explorer mit dem Editor, habe ich "Semikolon" als Trennzeichen.
Irgend etwas scheint beim Anhängen an die Mail die Trennzeichen zu vertauschen...
Jemand eine Idee?
Makro:

Sub Makro1_CSV_SEND2()
' Makro1_CSV_SEND Makro
ActiveSheet.SaveAs Filename:="C:\Temp\AQ03.csv", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True
ChDir "C:\Temp"
Sheet.Open Filename:="C:\Temp\AQ03.csv", local:=True
Application.Dialogs(xlDialogSendMail).Show _
"mustername@musterfirma.com", "Musterbetreff"
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: xls in csv umwandeln und per Mail versenden
07.11.2016 16:11:12
Andreas
Hallo Marcus,
habe mal gelesen, dass es wohl vom Standardformat des Programms abhängt, wie die csv interpretiert werden (also Komma, oder Punkt).
Ein Kollege benötigte mal die Wahlmöglichkeit und ich habe dafür folgendes zusammen gebastelt, evtl. kann man einen Teil davon verwenden.
Sub SaveCSV()
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
strMappenpfad = ActiveWorkbook.FullName
strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = InputBox("Wie soll die CSV-Datei heißen (c:\test.csv)?", "CSV-Export",  _
strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
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
Grüße
Andreas
Anzeige
AW: xls in csv umwandeln und per Mail versenden
07.11.2016 18:43:41
fcs
Hallo Marcus,
Jemand eine Idee?
Mit dem Parameter Local:=True beim Speichern als CSV_Datei und dem erneuten Öffnen der CSV-Datei stellst du unter VBA sicher, dass als Trennzeichen/Dezimalzeichen in der CSV die in der Systemeinstellung festgelegten Dezimalzeichen und Trennzeichen verwendet werden.
Nach dem erneuten Öffnen der CSV liegt die Datei in der Excel-BenutzerOberflache jedoch als Excel-Arbeitsmappe vor auch wenn als Dateiname noch ".csv" angezeigt wird.
Beim Versand der Mappe als E-Mail-Anhang via eingebautem Dialog wird erneut eine Umwandlung in CSV Durchgeführt. Leider benutzt VBA dabei nach dem Motto "I am American - I use commas as separators" dabei Kommas als Trennzeichen.
Meines Wissens gibt es dabei keine Möglichkeit das zu Steuern.
Als Lösung musst du hier ein E-Mail-Object kreieren und die erzeugte CSV-Datei als Anhang(Attachment) zuweisen.
Für den Versand per MS-Outlook findest du hier unter der RECHERCHE viele Beispiele. Bei anderen E-Mail-Programmen ist die Integrazion in ein VBA-Makro etwas scheieriger.
LG
Franz
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige