Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1852to1856
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

Sheet als PDF per E-mail senden

Sheet als PDF per E-mail senden
09.11.2021 13:26:25
Edi
Hallo, Ihr Profis
Nachdem mir hier schon öfters geholfen wurde, wage ich mich mal mit einer Spezialfrage hierher.
Der Status Quo:
In einer Arbeitsmappe befinden sich mehrere Arbeitsblätter.
Für jeden Kollegen gibt es ein Blatt.
Bisher wird jedes Blatt einmal im Monat ausgedruckt und den entsprechenden Kollegen (und das sind viele) ins Fach gelegt.
Die werfen dann einen interessierten Blick darauf und das Ding landet im Papierkorb = nicht nachhaltig.
Deshalb meine Frage:
Gibt es eine Möglichkeit, per Makro jedes einzelne Blatt als PDF an den entsprechenden Kollegen per Mail zu senden?
Die Mailadresse kann ich mir aus Vor- und Nachnamen zusammenbasteln. Aber beim Senden als PDF hapert es.
Am liebsten wäre es mir, es ginge, ohne das Blatt zu speichern.
Weiß nicht, ob das überhaut geht und freue mich auf Eure Antworten.
Viele Grüße
Edi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheet als PDF per E-mail senden
09.11.2021 13:43:56
Klaus
Hallo Edi,
Womit wird gemailt:
MS Outlook?
IBM Notes?
Windows-Standard-Mailer?
Oder etwas ganz anderes?
Für MS Outlook kann ich dir das hinbasteln, am besten gleich in einer Musterdatei. IBM Notes-Code müsste ich auch noch irgendwo rumliegen haben.
LG,
Klaus M.
AW: Sheet als PDF per E-mail senden
09.11.2021 13:47:22
Edi
Es ist tatsächlich MS Outlook.
Danke für Deine Hilfe
AW: Sheet als PDF per E-mail senden
09.11.2021 14:03:00
Klaus
Hallo Edi,
Hajo hätte jetzt geschrieben, "Du hast keine Datei hochgeladen also willst du es selbst zurecht basteln".
Anbei ein Makro, welches einzelne Tabellenblätter als xlsx verschickt. Den Part musst du umschreiben, dass das neue Tabellenblatt als PDF gespeichert wird und dann den Anhang entsprechend anpassen - oder vielleicht taugt es dir ja sogar schon, als xlsx zu verschicken.
Wenn du noch Hilfe brauchst, sag Bescheid! Aber dann bitte mit einer Musterdatei :-)
LG,
Klaus M.

Option Explicit
'Module to send Excel-Sheet directly with outlook
'April 2013 by Klaus M.vdT.
'original Code by mumpel / www.herber.de / 11.04.2013 11:23:25
'http://www.herber.de/forum/messages/1308295.html
Sub SendExample()
'give variables to send-Makro like this!
Dim wkbThisBook As Workbook
Dim sSheet As String
Dim sText As String
Dim sTo As String
Dim sCC As String
Dim sSubject As String
Set wkbThisBook = ActiveWorkbook
sSheet = "Tabelle1"
sTo = "Frank Farmer ; Karl Ransaier "
sCC = ""
sText = "Dear Colleages 
find mail attached
more text" sSubject = "Todays File" Call SendSheetOutlook(wkbThisBook, sSheet, sSubject, sTo, sCC, sText) End Sub Private Sub SendSheetOutlook(wkbOld As Workbook, wksOld As String, sSubject As String, sTo As String, sCC As String, sText As String) Dim olApp As Object Dim AWS As String Dim olSheetsCount As Integer Dim olOldBody As String 'define temporary Path and Filename AWS = wkbOld.Path & "\" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & "_" & wkbOld.Name 'set ammount of tables to one, so new file will not have 3-x empty tables Application.SheetsInNewWorkbook = 1 'add new empty workbook. Will be in FOCUS from now on! Workbooks.Add 'restore ammount of tables to old value Application.SheetsInNewWorkbook = olSheetsCount 'copy entire sheet wkbOld.Sheets(wksOld).Cells.Copy 'paste into new sheet as values, save sheet and close sheet under TEMP filename With ActiveWorkbook .Sheets(1).Range("A1").PasteSpecial xlPasteValues .SaveAs Filename:=AWS, FileFormat:=xlOpenXMLWorkbookMacroEnabled 'HIER ÄNDERN: SaveAs PDF .Close End With 'Make Email Set olApp = CreateObject("Outlook.Application") With olApp.CreateItem(0) .GetInspector.Display olOldBody = .htmlBody .To = sTo .cc = sCC .Subject = sSubject .htmlBody = sText & olOldBody .Attachments.Add AWS 'HIER ÄNDERN: PDF anhängen End With 'remove TEMP file Kill AWS End Sub

Anzeige
AW: Sheet als PDF per E-mail senden
09.11.2021 14:34:11
Edi
Hallo Klaus
Super, vielen Dank für Deine Hilfe.
Da muss ich mich jetzt mal reinlesen.
Das mit dem Datei hochladen ist so eine Sache.
Die Originaldatei hat ewig viele Blätter mit vertraulichen Daten.
Und letztlich kommt es ja auf den Inhalt nicht an, und einen Code zum präsentieren hatte ich noch gar nicht.
Wie gesagt jetzt muss ich mich erstmal in deinen Code reinlesen und den auch verstehen :/
Leider fällt mir jetzt noch ein, dass ja gar nicht die ganze Seite, sondern nur der Druckbereich gedruckt wird.
Ist jetzt auch erstmal nur eine Idee von mir, weil ich es unnötig finde, Monat für Monat so viele Blätter für den Papierkorb auszudrucken.
Ich schau mal, wie ich mit Deinem Code klar komme.
Vielen Dank
Edi
Anzeige
AW: Sheet als PDF per E-mail senden
10.11.2021 10:37:32
Edi
Hallo Klaus
Ich konnte Deinen Code gut als Anregung verwenden und mir etwas zusammenbasteln.
Funktioniert soweit ganz gut bis auf einen kleinen Schönheitsfehler.
Ich bin jetzt so weit, dass die Mail in Outlook erstellt wird.
Jetzt fehlt nur noch der letzte ultimative Befehl, damit diese Mail auch gesendet wird.
Wenn Du mir da nochmals einen Tipp geben kannst.
Sorry, aber Fremdanwendungen per vba steuern hab ich echt noch nie gemacht.
Anbei diesmal noch eine Beispieldatei :)
https://www.herber.de/bbs/user/149045.xlsm
Viele Grüße
Edi
Anzeige
AW: Sheet als PDF per E-mail senden
10.11.2021 10:44:18
Klaus
Hi Edi,
vorab, ich hab mir deine Datei nicht angesehen. Um das Mail zu senden, einfach .send in OlApp ausführen:

With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add AWS
.send
End With
In eigener Sache: Ich rate dir dringen davon ab, den Befehl .send zu verwenden. Ich selber benutze haufenweise automatisch generierte Mails, und ich lasse unter jede drunter schreiben "Diese Mail wurde automatisch erstellt" und drücke immer selber den Senden-Button. Lass mal einmal deine Vertretung unsicher sein und 20-30 mal auf den "Send Mail" Button im Dokument hämmern, dann weisst du warum :-)
LG,
Klaus M.
Anzeige
AW: Sheet als PDF per E-mail senden
10.11.2021 11:13:05
Edi
Hallo Klaus
.send
Da hätte ich auch drauf kommen können.
Deine Argumentation hat was. Das muss ich mir noch überlegen. Ich muss ohnehin das Senden bestätigen. Dann kann ich es auch tatsächlich manuell machen.
Das Problem ist nur:
Wenn ich auf das .send verzichte und das Makro nur die Mails erzeugt, dann rennt das durch und ich habe anschließend den ganzen Bildschirm voll mit ungesendeten Mails.
Während mit .send das Makro immer brav wartet, bis ich das Senden bestätigt habe.
Oder kann man das abschalten? Aber dann gibt es vielleicht tatsächlich das Problem mit der Vertretung :)
Muss einfach mal schauen, was praktikabler ist
Gruß
Edi
Aber vielen herzlichen Dank für Deine Hilfe
Anzeige
.send klappt bei mir ...
10.11.2021 11:24:07
Klaus
.... ohne dass ich irgendwas bestätigen muss.
Bei einem Kollegen macht das exakt gleiche Makro ein Fenster "Bitte genehmigen sie den Zugriff auf Outlook" welches bestätigt werden muss, bei mir nicht. "Senden bestätigen" muss keiner von uns beiden. Ich schätze, die Antwort darauf ist in den lokalen Outlook-Sicherheitseinstellungen zu finden - aber da bin ich nicht der Experte für.
Danke für die Rückmeldung, viel Spaß mit der weiteren Mailautomatisierung!
LG,
Klaus M.
AW: .send klappt bei mir ...
10.11.2021 11:52:22
Edi
Nun ja, wahrscheinlich dann eine Sicherheitseinstellung hier im Haus
sieht dann so aus:
Userbild
Das muss ich für jede Mail bestätigen.
Aber von daher muss das auch einer Vertretung auffallen, dass die Mails dann gesendet werden.
Andererseits... überleg.... Da steht was, dass man diese Meldung auch unterdrücken kann. Dann könnte ich das vielleicht auch ausschalten und am Ende des Makros eine msgbox einfügen "Mails gesendet" oder so.
Dann sollte es auch klar sein.
Aber jetzt werde ich Dich nicht weiter behelligen.
Ist ja eigentlich beantwortet, meine Frage.
LG
Edi
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige