Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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

PDF mit Range aus Excel per Outlook verschicken

PDF mit Range aus Excel per Outlook verschicken
05.11.2012 12:50:37
Marco
Hallo zusammen,
sorry, bin grad am verzweifeln, weil ich nach langem Suchen keine Lösung im Netz finde und mit Rumprobieren ich auch nicht mehr weiterkomm.
Gibt es eine Möglichkeit aus Excel per Makro ein pdf zusammen mit einem ausgewählten Bereich zu versenden? Über die envelope-Anweisung kann ich (anscheinend) nur einen Excelbereich direkt aus Excel schicken (geht ein pdf-Anhang auch?).
Das pdf verschicke ich über folgenden Code (erfolgreich) - Textbereich geht zwar auch, allerdings ist das reiner Text und nicht formatiert, soll am Schluß aber eine Tabelle sein.
Wer kann mir weiterhelfen? Ideal wäre
1. entweder eine Möglichkeit der übersichtlichen Formatierung des Textanhangs/ Bereichs bzw. ein Befehl des "schöneren" Einfügens einer Range
2. oder eine Möglichkeit mit der envelope-Methode ein pdf anzuhängen
Vielen Dank für eure Hilfe!!!
Sub sendMail()
Dim mepdf, Änderungen As String
Dim MyOutApp As Object, MyMessage As Object
Dim verteiler As String
Dim signature As String
Dim myClpObj As DataObject
Set myClpObj = New DataObject
'Makro erstellt pdf direkt aus der Datei, hängt dieses an die Mail und öffnet es. Infos aus  _
Range werden als Text angehängt.
Sheets("xxx").Select
verteiler = Cells(1, 2)     'Mailadressen aus Zelle einlesen
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\FEK-Erprobungskalender.pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
:=True
mepdf = ThisWorkbook.Path & "\Dateiname.pdf"
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.to = verteiler
.Subject = "Text" & Date 'Betreffzeile
'hier wird zusätzlich der markierte Bereich eingefügt, allerdings unformatiert :-(
myClpObj.GetFromClipboard        .Body = "text" & Chr(13) & Chr(13) & myClpObj.  _
_
GetText(1)        .Attachments.Add mepdf
.Attachments.Add meIIpdf
.Display
'.Send
'Kill mepdf
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End 


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

Betreff
Datum
Anwender
Anzeige
AW: PDF mit Range aus Excel per Outlook verschicken
05.11.2012 23:42:24
fcs
Hallo Marco,
2 PDF-Anhänge zu erzeugen ist möglich. siehe Code
Wenn du dir die Email vor dem Versand noch ansehen willst, dann kanst du auch den selektierten, kopierten Zellbereich als Tabelle oder Grafik im Body der E-Mail einfügen.
Meine Programmierkentnisse in VBA-Outlook reichen nicht aus, um die Zellinhalte automatisch per Makro in ansprechender Form in die Mail einzufügen. Falls du nicht automatisch die Mail direkt versendest, dann kann du den vom Makro kopierten Bereich manuell als Tabelle oder Grafik in der Mail einfügen.
Gruß
Franz
Sub sendMail()
Dim mepdf As String, mepdf2 As String, Änderungen As String
Dim rngPDF As Range
Dim MyOutApp As Object, MyMessage As Object
Dim verteiler As String
Dim signature As String
'Makro erstellt pdf direkt aus der Datei, hängt dieses an die Mail und öffnet es. Infos aus _
Range werden als 2. PDF angehängt.
Sheets("xxx").Select
Set rngPDF = ActiveSheet.Range("A5:B12") 'Zellbereich für 2. PDF-Datei
verteiler = Cells(1, 2)     'Mailadressen aus Zelle einlesen
'Namen der beiden PDF-Dateien
mepdf = ThisWorkbook.Path & "\FEK-Erprobungskalender" & Format(Now, " YYYY-MM-DD hhmmss") &  _
".pdf"
mepdf2 = ThisWorkbook.Path & "\Bereich" & Format(Now, " YYYY-MM-DD hhmmss") & ".pdf"
'gesamtes Blatt als PDF speichern
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=mepdf, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'bestimmten Zellbereich als PDF speichern
rngPDF.Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mepdf2, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
signature = "Mit freundlichen Grüßen" & Chr(13) & Chr(13) & "Mein Name"
With MyMessage
.to = verteiler
.Subject = "Text" & Format(Date, " YYYY-MM-DD") 'Betreffzeile
.Body = "Bodytext" & Chr(13) & Chr(13) & signature
.Attachments.Add mepdf
.Attachments.Add mepdf2
rngPDF.Copy
MsgBox "Der Kopierte Zellbereich kann jetzt in Outlook eingefügt werden."
.Display
'.Send
'Kill mepdf
'Kill mepdf2
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Anzeige
AW: PDF mit Range aus Excel per Outlook verschicken
06.11.2012 09:10:56
Marco
Hallo Franz,
vielen Dank für Deinen Tipp! Daran hab ich auch schon gedacht. Hätte aber ganz gern, dass der Bereich gleich lesbar in der Mail steht (Macht das ganze übersichtlicher un man muss das pdf nicht mit dem letzten vergleichen).
Manuell kopieren möchte ich weglassen, am Ende soll nur 2 mal Knopf drücken reichen um das Teil zu versenden.
Danke für die Hilfe!!!!
Hab jetzt eine andere Lösung mit envelope direkt aus Excel - liefert das gewünschte Ergebnis, man muss aber aufpassen, dass man in Excel keine anderen Bereiche selektiert...
Hier der (wesentlich kürzere) Code - vielleicht braucht das ja mal jemand...

Sub Mailversand()
Dim m As Integer
'Zunächst Abfrage, ob gespeichert werden soll
Nachricht = MsgBox("Datei speichern?", vbYesNoCancel)
If Nachricht = vbCancel Then Exit Sub
If Nachricht = vbNo Then ThisWorkbook.Close
If Nachricht = vbYes Then
ThisWorkbook.save
End If
Sheets("Vergleich").Select
m = 2
Do While Sheets("Vergleich").Cells(m, 10)  ""
m = m + 1
Loop
ActiveSheet.Range(Cells(2, 10), Cells(m - 1, 14)).Select            'Selection: Der Bereich,  _
der sichtbar in der Mail stehen soll
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Item.To = "Mailadresse"
'.Item.Cc = "xxx"
.Item.Subject = "Text " & Date
.Introduction = "Text" & Chr(13) & _
"Folgende Änderungen wurden vorgenommen:" & Chr(13) & Chr(13)   'hier steht im  _
Anschluß der selektierte Bereich
.Item.Attachments.Add ThisWorkbook.Path & "\Dateiname.pdf"     '...und das PDF als Anhang
.Item.Display          'Vor Versand pdf nochmal anzeigen lassen
End With
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige