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

Mehrere PDF per Mail versenden

Mehrere PDF per Mail versenden
26.02.2024 08:15:59
Timo
Guten Morgen zusammen,

ich brauche bitte wieder einmal eure Hilfe. Ich suche schon seit Stunden anch Codeschnipseln, um mir meine gewünschte Funktion zu erstellen, aber ich bekomme es einfach nicht hin.

Ich habe 2 Exceldateien, beide liegen im selben Ordner. Von Datei 1 erstelle ich von Tabelle2 eine PDF, von Tabelle 2 werden 2 Tabellenblätter exportiert und im selben Ordner gespeichert. Den Export erledigt dieser Code:

Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", "") & "_LS", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _

:=False, OpenAfterPublish:=True

Tabelle3.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", "") & "_GS", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True


Hiermit werden dann Tabelle 2 und 3 exportiert, Dateiname ist der Name der Exceldatei plus es werden _LS bzw. _GS angehangen. In der andere Exceldatei ist es dann Tabelle3 mit gleichem Code.

Jetzt würde ich gerne die bereits erstellten PDF direkt als Anhang nach Outlook senden. Hierfür habe ich mir folgenden Code gesucht:

Sub Beispiel_PDF_Mail_NEU()

Dim sPathPDF$
Dim objOutlook As Object, objMail As Object

'PDF erstellen
With ThisWorkbook

'Pfad wo die PDF gespeichert werden soll, hier wo die Excel liegt
sPathPDF = IIf(Right$(.Path, 1) = "\", .Path, .Path & "\")

'Pfad + PDF-File-Name, hier wird der Name der Excel verwendet
sPathPDF = sPathPDF & Left(.Name, InStrRev(.Name, ".")) & "pdf"

'Abfrage ob Datei ersetzt werden soll, bei nein Abbruch
If Dir(sPathPDF, vbNormal) > "" Then
If MsgBox("Die PDF wurden bereits erstellt, sollen sie überschrieben werden?", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
End If

Tabelle3.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPathPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

End With

'Mail erstellen ************************************
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = "Mustermann@MusterProviter.de" 'An-Empfänger
.CC = "" 'Cc-Empfänger
.BCC = "" 'BCc-Empfänger
.Subject = "Betreff" 'Betreff
.Body = "Mail Nachricht" 'Nachricht
.Attachments.Add sPathPDF 'Anlage
.Display 'Mail anzeigen
End With


Set objMail = Nothing
Set objOutlook = Nothing
End Sub


Mit diesem Code wird dann 1 Datei exportiert und eine E-Mail erstellt und die PDF angehangen.

Jetzt stehe ich vor 3 Herausforderungen:
1: Ich schaffe es zwar, hier eine 2. Datei nach Outlook als Anhang zu schicken, aber der Dateiname ändert sich und es wird nur der Name der Exceldatei angegeben. Somit habe ich zwar 2 Anhänge, die heißen aber beide gleich. Ich brauche die Unterscheidung zwischen _LS und _GS. Ich benötige jedoch auch meinen Zusatz. Bei Tabelle 2 _LS und Tabelle 3 _GS im Dateinamen. Egal was ich hier auch im Code versuche, er sendet zwar was nach Outlook allerdings kommt dann die Meldung "Pfad fehlerhaft" und der Anhang kann nicht geöffnet werden.

2: Schön wäre es, wenn alle PDF Dateien aus dem Ordner als Anhang verschickt werden könnten. Denn auch aus Exceldatei 1 wird ebenfalls eine PDF erstellt. Der Dateiname ist ebenfalls der der Exceldatei plus _REF angehangen.
Wie kann ich entweder "Alle PDF Dateien als Anhänge aus dem Ordner versenden" - oder - eine weitere Datei der selben E-Mail anhängen. Also in Tabelle 1 wird ein Anhang an Outlook gesendet, aus Tabelle 2 sollen beide PDF exporte ebenfalls in die selbe E-Mail.

3: Meine Signatur soll benfalls noch in der Mail hinterlegt werden. Das habe ich auch noch nicht geschafft.

Ohje, sorry für den langen Text, aber ich tue mich schwer mit der Erklärung.

Danke für Eure Unterstützung.

LG Timo

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere PDF per Mail versenden
26.02.2024 09:11:40
ede
Guten Morgen,
dann schreib die Dateinamen der exportierten Files in eine VAriale und hänge diese an:




strPDF1 = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", "") & "_LS"
Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF1, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

strPDF2 = ThisWorkbook.Path & "\" & Replace(ThisWorkbook.Name, ".xlsm", "") & "_GS"
Tabelle3.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF2, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

...

.Attachments.Add sPathPDF 'Anlage
.Attachments.Add strPDF1
.Attachments.Add strPDF2


gruss
ede
Anzeige
AW: Mehrere PDF per Mail versenden
26.02.2024 09:25:38
Timo
Hallo Ede,

vielen Dank für Deinen Vorschlag.

So ähnlich hatte ich es versucht. Es werden dann zwar 2 Dateien als Anhang in Outlook übernommen, allerdings habe ich in Outlook die Fehlermeldung, dass der Pfad nicht verfügbar ist.

Userbild

Vielen Dank für weitere Hilfe.

LG Timo
AW: Mehrere PDF per Mail versenden
26.02.2024 09:31:27
Timo
Ach, die Dateiendung .PDF hat gefehlt. Alles klar. Jetzt geht´s. Sorry.

Klasse! Vielen lieben Dank!

LG Timo
AW: Mehrere PDF per Mail versenden
26.02.2024 09:42:47
ede
genau, die Endung hat in den Variablen gefehlt,
die Signatur must du vorher zwischenspeichern, so:
Oldbody = .htmlBody

.htmlBody = "Hallo! Anbei gewünschte Informationen." & Oldbody

viel Erfolg
ede
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige