Anzeige
Archiv - Navigation
1524to1528
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

Aktives Arbeitsblatt als Mail Versenden

Aktives Arbeitsblatt als Mail Versenden
24.11.2016 13:05:15
Jonas
Moin Moin!
Es ist ein weiteres Problem aufgetreten.
Ich würde gerne per Makro das aktive Arbeitsblatt in ein PDF Dokument speichern und direkt als Mail versenden.
Problematik dabei, ich wäre gerne unabhängig von Outlook...
Ich hab da schon mal ein paar Zeilen, die für meinen bedarf angepasst werden müssten, was ich aber nicht hinbekomme.
Anzupassen wäre:
- Das Arbeitsblatt soll nicht als .xlsm gespeichert werden, sondern als .pdf
- Auch nicht nur temporär, sondern an einem speziellen Pfad
- Mailprogramm unabhängig von Outlook (Standardmailprogramm)
- Empfänger-Mailadresse sollte automatisch aus einer Zelle des Arbeitsblattes ausgelesen werden
Das ist der Code den ich anpassen wollen würde:
Sub Rechnung_senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Temp\" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
'** Body-Text festlegen. Irgendwas funktioniert nicht ganz :/
strBodyText = _
"Mit freundlichen Grüßen" & Chr(13) & Chr(13) & _
"Name" & Chr(13) & _
"Firmenname, Adresse" & Chr(13) & _
'** Mail erzeugen
With Mail
'.To = ""
'.CC = ""
.Subject = "" 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = strBodyText 'Bodytext / Signatur
End With
'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close
'** Erzeugte Datei wieder löschen
Kill (strDatei)
'** E-Mail anzeigen
Mail.Display
End Sub

Villeicht mit irgendwas hiervon anreichern? Ich weiss aber nicht wie und wo...
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\JohnFox\AppData\Local\Temp\0. Vorlage.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Application.Dialogs(xlDialogSendMail).Show
Vielen Dank für eure Hilfe!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktives Arbeitsblatt als Mail Versenden
26.11.2016 07:37:59
fcs
Hallo Jonas,
es ist schwierig für andere E-Mail-Programme einen entsprechenden E-Mail-Versand unter VBA umzusetzen.
Excel/VBA haben zwar ein paar Möglichkeiten das Standard-E-Mail-Programm anzusprechen bzw. für den Versand zu verwenden. Aber die Variationen sind begrenzt und spätestens beim Anhängen eines individuellen Attachments scheitert es dann.
Einige E-Mail-Anwendungen haben ihre eigene Objekt-Bibliothek (ähnlich wie Outlook) mit der via VBA Mails versendet werden können(z.B. Lotus-Notes).
Was hindert dich denn daran Outlook für den Versand zu verwenden, außer der Preferenz für ein anderes?
LG
Franz
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige