Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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
Inhaltsverzeichnis

Excel VBA email schreiben und lokal abspeichern

Excel VBA email schreiben und lokal abspeichern
15.07.2014 10:55:38
Sven

Hallo liebe Profis,
nach langer Recherche komme ich einfach nicht weiter. Daher hier mein 1. Beitrag mit der Bitte um Hilfe:
a) Vorraussetzungen
Excel 2010
Outlook 2010
PC: Win 7 Pro
b) Aufgabenstellung
Es solll in Excel über einen Button per Klick eine email in outlook erzeugt werden. Diese soll anschließend unter einem Netzwerkpfad Pfad z.B. \\Daten\Reklamationen\ abgespeichert werden.
Ich habe das ganze auch schon für ein Word Dokument gemacht, allerdings scheint die Syntax für outlook eine andere zu sein.
c) Hier der bisherige code:

Private Sub Entschuldigungsemail_Click()
Set olApp = CreateObject("Outlook.Application")
Set olDoc = olApp.CreateItem(0)
With olDoc
.To = Range("K6")
.Subject = Range("M4")
.HTMLbody = Range("L4") & " " & Range("K4") & " " & Range("K5") & "," & Chr(13) & Chr(13) &  _
Range("M5")
.Display
'.Send 'Hier wird die Mail gesendet
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub
d) Problem
Das Email erzeugen (mit allen Texten und Empfänger etc.) funktioniert damit. Nur das Abspeichern bekomme ich einfach nicht hin.
Wollte dies mit folgendem code lösen. Funktioniert aber nicht:
Dim olPfad As String
olPfad = ("F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\QM_Kunden-Reklamationen\" & "K_RKL" & "_" & [I1] & "_" & [G4] & "_" & [X1] & "\")
olDoc.SaveAs Filename:=emailPfad & "Entschuldigungsschreiben" & ".msg"
Das Abspeichern unter dem angegebenen Pfad soll über das Speichern Dialogfeld von outlook gemacht werden.
Hat mir jemand einen Tipp?
Viele Grüße
Sven

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 10:59:34
Oberschlumpf
Hi Sven,
...Das Abspeichern unter dem angegebenen Pfad soll über das Speichern Dialogfeld von outlook gemacht werden...
dieses Vorgehen müsste dann ja auch mit Outlook-VBA und in Outlook gelöst werden.
Du weißt aber schon, dass wir hier Excel-VBA "sprechen", oder? :-)
Ciao
Thorsten

AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 11:07:20
Sven
Hi Thorsten,
das heißt wohl, dass in das Excel Makro ein Outlook vba rein muss?!
Ich wollte dies ähnlich lösen wie hier (nur mit outlook):
Private Sub Entschuldigungsschreiben_Click()
Dim wrdApp, wrdDoc, Tabelle
Dim wrdPfad As String
wrdPfad = ("F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\QM_Kunden-Reklamationen\" & "K_RKL" & _
"_" & [I1] & "_" & [G4] & "_" & [X1] & "\")
If Dir("F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\QM_Kunden-Reklamationen\" & "K_RKL" & "_" _
& [I1] & "_" & [G4] & "_" & [X1], vbDirectory) = "" Then
MkDir ("F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\QM_Kunden-Reklamationen\" & "K_RKL" & _
"_" & [I1] & "_" & [G4] & "_" & [X1])
MsgBox "Ordner wurde angelegt"
End If
On Error GoTo ErrorExit
Set Tabelle = ThisWorkbook.Worksheets("Tabelle1")
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add("F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\QM_Kunden- _
Reklamationen\Entschuldigungsschreiben.dotm")
wrdDoc.FormFields("Text1").Result = Tabelle.Range("G4").Value
wrdDoc.FormFields("Text2").Result = Tabelle.Range("K4").Value
wrdDoc.FormFields("Text3").Result = Tabelle.Range("K5").Value
wrdDoc.FormFields("Text4").Result = Tabelle.Range("G5").Value
wrdDoc.FormFields("Text5").Result = Tabelle.Range("G6").Value
wrdDoc.FormFields("Text6").Result = Tabelle.Range("G7").Value
wrdDoc.FormFields("Text7").Result = Tabelle.Range("G8").Value
wrdDoc.FormFields("Text8").Result = Tabelle.Range("K4").Value
wrdDoc.FormFields("Text9").Result = Tabelle.Range("K5").Value
wrdDoc.FormFields("Text10").Result = Tabelle.Range("L4").Value
wrdDoc.FormFields("Text11").Result = Tabelle.Range("M4").Value
wrdDoc.FormFields("Text12").Result = Tabelle.Range("M5").Value
MsgBox "Alle Felder erfolgreich eingefügt"
wrdDoc.SaveAs Filename:=wrdPfad & "Entschuldigungsschreiben" & ".docx", _
FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
'Set wrdDoc = wrdApp.Documents.SaveAs = "F:\DATEN2\Qualitätsmanagement\QM_Reklamationen\ _
QM_Kunden-Reklamationen\XXX.docx"
ErrorExit:
'wrdApp.Quit
Set Tabelle = Nothing
Set wrdDoc = Nothing
Set wrdApp = Nothing
End Sub

Das heißt dann wohl das dies auch kein excel vba ist, sondern word vba?
Wenn dies so ist, dann bin ich wohl falsch gelandet!
Tut mir leid. Sorry für die Verwirrung.
Grüße
Sven

Anzeige
AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 11:12:59
Nepumuk
Hallo,
da fehlt der Dateityp.
olDoc.SaveAs Filename:=emailPfad & "Entschuldigungsschreiben" & ".msg", 3

Solltest du Unicode-Zeichen in deinem Mail haben, dann an Stelle von 3 (olMSG) die 19 (olMSGUnicode) benutzen.
Gruß
Nepumuk

AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 11:18:42
Sven
Hi Nepumuk,
da kommt dann aber ein Fehler:
Fehler beim kompilieren
Erwartet: Benannter Parameter
gruß
Sven

AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 11:30:45
Nepumuk
Hallo,
Achso:
olDoc.SaveAs Filename:=emailPfad & "Entschuldigungsschreiben" & ".msg", Type:=3

Gruß
Nepumuk

Anzeige
AW: Excel VBA email schreiben und lokal abspeichern
15.07.2014 12:54:40
Sven
Hallo Nepumuk,
leider habe ich nun einen Laufzeitfehler 448.
Benanntes Argument nicht gefunden.
Gruß
Sven

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige