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

Tabellenblätter als pdf senden

Tabellenblätter als pdf senden
15.02.2022 13:06:11
Andrea
Hallo,
ich sende mit Hilfe des Forums mit dem folgenden Makro viele Tabellenblätter (ca. 85) an die Adressaten in jeweils Zelle A1.
Das Problem ist nun, dass die pdf-Dateien jeweils plan.pdf heißen.
Gibt es die Möglichkeit, das Makro so anzupassen, dass der pdf-Name so heißt wie die Tabellenblätter? Die haben ja jeweils andere Bezeichnungen.
Wenn ja, wie?
Vielen Dank für eure Hilfe.
Viele Grüße
Andrea

Sub pdfMail()
Dim mePDFD As String, strTo As String, TB As Worksheet
Dim MyOutApp As Object, MyMessage As Object
mePDFD = ThisWorkbook.Path & "\plan.pdf"
For Each TB In ActiveWindow.SelectedSheets
strTo = TB.Range("A1")
TB.Copy
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close False
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = strTo  'Adressen aus Zelle A1?
.Subject = "Wichtige Information 2"          'Betreffzeile
.body = "Bitte die weitere Mail heute mit Erläuterungen beachten. Vielen Dank."    'Inhalt, ev. auskommentiert
.Attachments.Add mePDFD
.Display
'.Send auskommentiert: senden pro Datei - nicht auskommentiert: senden ohne Nachfrage
End With
Kill mePDFD
Set MyMessage = Nothing
Set MyOutApp = Nothing
Next
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter als pdf senden
15.02.2022 13:14:54
Nepumuk
Hallo Andrea,
teste mal:

Sub pdfMail()
Dim mePDFD As String, TB As Worksheet
Dim MyOutApp As Object, MyMessage As Object
Set MyOutApp = CreateObject("Outlook.Application")
For Each TB In ActiveWindow.SelectedSheets
mePDFD = ThisWorkbook.Path & "\" & TB.Name & ".pdf"
TB.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = TB.Range("A1").Text  'Adressen aus Zelle A1?
.Subject = "Wichtige Information 2"          'Betreffzeile
.Body = "Bitte die weitere Mail heute mit Erläuterungen beachten. Vielen Dank."    'Inhalt, ev. auskommentiert
.Attachments.Add mePDFD
.Display
'.Send auskommentiert: senden pro Datei - nicht auskommentiert: senden ohne Nachfrage
End With
Kill mePDFD
Set MyMessage = Nothing
Next
Set MyOutApp = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: Tabellenblätter als pdf senden
15.02.2022 13:40:41
Andrea
Hallo Nepumuk,
vielen Dank für die schnelle Reaktion.
Die Tabellenblattnamen sind jetzt die Namen der pdf-Dateien.
Problem ist nur, dass in jedem pdf alle TB aufgeführt sind. Es sollte jeder Kollege nur das eigene pdf bekommt - so wie der Tabellenblattname.
Viele Grüße
Andrea
AW: Tabellenblätter als pdf senden
15.02.2022 13:53:41
Nepumuk
Hallo Andrea,
stimmt, es werden immer alle ausgewählten Tabellen exportiert. Dann so:

Sub pdfMail()
Dim mePDFD As String, TB As Worksheet
Dim MyOutApp As Object, MyMessage As Object
Set MyOutApp = CreateObject("Outlook.Application")
For Each TB In ActiveWindow.SelectedSheets
mePDFD = ThisWorkbook.Path & "\" & TB.Name & ".pdf"
TB.Copy
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close SaveChanges:=False
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = TB.Range("A1").Text  'Adressen aus Zelle A1?
.Subject = "Wichtige Information 2"          'Betreffzeile
.Body = "Bitte die weitere Mail heute mit Erläuterungen beachten. Vielen Dank."    'Inhalt, ev. auskommentiert
.Attachments.Add mePDFD
.Display
'.Send auskommentiert: senden pro Datei - nicht auskommentiert: senden ohne Nachfrage
End With
Kill mePDFD
Set MyMessage = Nothing
Next
Set MyOutApp = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: Tabellenblätter als pdf senden
15.02.2022 14:01:29
Andrea
Hallo Nepumik,
jetzt wird nur jeweils das aktive Tabellenblatt gesendet.
Wenn ich mehrer TB auswähle kommt ein Fehler an der Stelle TB.Copy und dem Hinweis im Bild.
Liebe Grüße
Andrea
Userbild
AW: Tabellenblätter als pdf senden
15.02.2022 14:03:31
Andrea
Entschuldigung Nepumuk, die Finger waren schneller als die Augen.
Liebe GRüße
Andrea
AW: Tabellenblätter als pdf senden ...?
15.02.2022 17:31:23
Andrea
Hallo Nepumuk,
hab ich dich verärgert?
Deine Lösungen waren doch super.
Die Zweite war nur insofern problematisch, weil ich ja dann nicht alle pdf mit einem 'Rutsch' senden konnte. Jedes Einzeln geht natürlich, ist aber zeitaufwändig.
Die erste mit der zweiten Lösung 'kombinieren', geht das nicht?
Liebe Grüße
Andrea
Anzeige
AW: Tabellenblätter als pdf senden ...?
15.02.2022 18:12:54
Nepumuk
Hallo Andrea,
NEIN, ich dachte du wärst schon zufrieden. Besser als so wird es nicht:

Sub pdfMail()
Dim mePDFD As String, TB As Worksheet
Dim MyOutApp As Object, MyMessage As Object
Dim objDictionary As Object
Dim vntKey As Variant
Application.ScreenUpdating = False
Set objDictionary = CreateObject("Scripting.Dictionary")
For Each TB In ActiveWindow.SelectedSheets
mePDFD = ThisWorkbook.Path & "\" & TB.Name & ".pdf"
Call objDictionary.Add(Key:=mePDFD, Item:=TB.Range("A1").Text)
TB.Copy
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=mePDFD, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close SaveChanges:=False
Next
Set MyOutApp = CreateObject("Outlook.Application")
For Each vntKey In objDictionary.Keys
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = objDictionary.Item(Key:=vntKey)  'Adressen aus Zelle A1?
.Subject = "Wichtige Information 2"          'Betreffzeile
.Body = "Bitte die weitere Mail heute mit Erläuterungen beachten. Vielen Dank."    'Inhalt, ev. auskommentiert
.Attachments.Add vntKey
.Display
'.Send auskommentiert: senden pro Datei - nicht auskommentiert: senden ohne Nachfrage
End With
Kill vntKey
Set MyMessage = Nothing
Next
Set MyOutApp = Nothing
Set objDictionary = Nothing
Application.ScreenUpdating = True
End Sub
Gruß
Nepumuk
Anzeige
AW: Tabellenblätter als pdf senden ...?
15.02.2022 19:51:41
Andrea
Hallo Nepumuk,
ich bin dir wirklich dankbar. Und ich will auch nicht meckern.
Es funktioniert ja soweit gut.
Nur wird leider nur das aktive TB als pdf gesendet. (es sind ca. 85 TB)
Ich hätte halt gern, dass alle TB - jedes als seperate pdf-Datei - mit einem mal, also mit einem Aufruf des Makros, gesendet werden.
Aber dann wird es sicher nicht gehen.
Liebe Grüße
Andrea
AW: Tabellenblätter als pdf senden ...?
15.02.2022 20:15:37
Nepumuk
Hallo Andrea,
kann ich nicht nachvollziehen. Bei mir wird aus jedem selektierten Blatt eine eigenes PDF erstellt und jeweils eine Mail mit diesem als Anhang erstellt.
So war das in deinem Makro und meines macht genau das selbe. Oder wolltest du etwas anderes? Wenn ja, was genau?
Gruß
Nepumuk
Anzeige
AW: Tabellenblätter als pdf senden ...?
16.02.2022 08:11:58
Andrea
Hallo Nepumuk,
mein Fehler! Entschuldigung.
Ich habe dein Makro in eine neue Datei (also schon die Original, aber nicht 'verspielt') eingefügt - und es funktioniert perfekt.
Also vielen Dank noch mal - auch für deine guten Nerven.
Liebe Grüße
Andrea

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige