Einzelnes Tabellenblatt als E-Mailanhang mit Outlook versenden
Hallo Forum,
In einer Excel Tabelle habe ich mehrere Tabellenblätter welche automatisch mit Inhalten aus einer Eingabemaske im ersten Tabellenblatt befüllt werden.
Zum Ausdrucken habe ich einen Steuerelemente Button mit einem Makro Verknüpft.
Wenn hier in Zelle d33 ein "p" eingegeben wird, wird das Tabellenblatt2 gedruck. steht zuätzlich ein "p" in d34 wird auch noch das Tabellenblatt3 mit ausgegeben.
Das funktioniert auch schon alles .
Nun zu meiner eigentlichen Frage:
ich möchte eine Steuerelemet einfügen bei dem via Makro eine E-Mail mit den entsprechend ausgewählten Tabellenblättern erzeugt wird.
Eine Mail je Range ist Ok, weil es unterschiedliche Empfänger sein werden.
Mein Lösungsansatz sieht so aus. Aber wie belomme ich die entsprechenden Tabellenbätter als PDF in den Anhang?
Von der Theorie her muss ja dann das jeweilige Tabellenblatt mit der Dateiendung PDF gespeichert, und dann als Anhang in eine Mail gepackt werden.
In einer Excel Tabelle habe ich mehrere Tabellenblätter welche automatisch mit Inhalten aus einer Eingabemaske im ersten Tabellenblatt befüllt werden.
Zum Ausdrucken habe ich einen Steuerelemente Button mit einem Makro Verknüpft.
Sub Print()
If Range("d33") = "p" Then
Sheets("Tabellenblatt2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Sheets("Grundmaske").Select
End If
If Range("d34") = "p" Then
Sheets("Tabellenblatt3).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Sheets("Grundmaske").Select
End If
End Sub
Das funktioniert auch schon alles .
Nun zu meiner eigentlichen Frage:
ich möchte eine Steuerelemet einfügen bei dem via Makro eine E-Mail mit den entsprechend ausgewählten Tabellenblättern erzeugt wird.
Eine Mail je Range ist Ok, weil es unterschiedliche Empfänger sein werden.
Mein Lösungsansatz sieht so aus. Aber wie belomme ich die entsprechenden Tabellenbätter als PDF in den Anhang?
Von der Theorie her muss ja dann das jeweilige Tabellenblatt mit der Dateiendung PDF gespeichert, und dann als Anhang in eine Mail gepackt werden.
Sub Mail()
If Range("d32") = "m" Then
Sheets("Tabellenblatt2").Select
Wer kann mir hier ein bisschen unter die Arme greifen..
Manferd
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = ""
.Subject = ""
.Body = Sheets("Tabellenblatt2").Select
'Nachricht zur Kontrolle anzeigen
.Display
End With
Sheets("Grundmaske").Select
End If
If Range("d33") = "m" Then
Sheets("Tabellenblatt3").Select
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = ""
.Subject = ""
.Body = Sheets("Tabellenblatt3").Select
.Display
End With
Sheets("Grundmaske").Select
End If
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 327249
Url: https://administrator.de/contentid/327249
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
5 Kommentare
Neuester Kommentar
'Belegter Bereich des Tabellenblattes in die Zwischenablage kopieren
Sheets("Tabellenblatt3").UsedRange.Copy
With objMail
'....
' und in die Mail einfügen
.GetInspector.WordEditor.Range.Paste
.Display
End with
.Body = txt
Was soll das ?? Die Variable ist doch nirgendwo definiert?! Und das Copy von oben hast du auch nicht drin ...Du brauchst den Body nicht festzulegen das macht das paste schon.