Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: E-Mail Signatur mit VBA einfügen

E-Mail Signatur mit VBA einfügen
03.12.2019 16:41:09
Roger
Guten Abend
Habe ein kleines Problem würde gerne beim erstellen durch VBA Excel PDF Anhang zusätzlich die Signatur einfügen. Der Code unten funktioniert ganz kurz holt er die Signatur, jedoch nach einer Sekunde verschwindet die Signatur wieder.
Was mache ich falsch?
Sub PDFundSenden()
ChDir "C:\Users\Admin\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Admin\Desktop\Bestellung.pdf"
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Set OutlookApp = CreateObject("Outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
.GetInspector.Display
olOldBody = .HTMLBody
.To = Range("O25")
.CC = Range("O26")
.Subject = Range("O28")
.Body = "Hoi Ruedi" & vbCrLf & vbCrLf & "Die Bestellung findest Du im Anhang." & vbCrLf &  _
vbCrLf & "Freundlichen Grüsse" & vbCrLf & vbCrLf & "Roger Meier" & vbCrLf & "Meier Delivery at Box"
myAttachments.Add "C:\Users\Admin\Desktop\Bestellung.pdf"
'send
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Signatur mit VBA einfügen
03.12.2019 17:21:29
volti
Hallo Roger,
rette die Signatur in einer Variablen und hänge sie später wieder:
Sub PDFundSenden()
ChDir "C:\Users\Admin\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename
"C:\Users\Admin\Desktop\Bestellung.pdf"
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Dim Signatur As String
Set OutlookApp = CreateObject("Outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
Signatur = .GetInspector
.GetInspector.Display
olOldBody = .HTMLBody
.To = Range("O25")
.CC = Range("O26")
.Subject = Range("O28")
.Body = "Hoi Ruedi" & vbCrLf & vbCrLf & "Die Bestellung findest Du im Anhang." & vbCrLf & _
vbCrLf & "Freundlichen Grüße" & vbCrLf & vbCrLf & "Roger Meier" & vbCrLf & "Meier Delivery at Box" & vbCrLf & Signatur
myAttachments.Add "C:\Users\Admin\Desktop\Bestellung.pdf"
'send
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub

viele Grüße
Karl-Heinz


Anzeige
AW: E-Mail Signatur mit VBA einfügen
03.12.2019 20:39:45
Roger
Guten Abend Karl-Heinz
Leider funktioniert es nicht es gibt bei dem Filename eine blockade... Hast Du noch eine andere Variante wie es gehen könnte?
Sub PDFundSenden()
ChDir "C:\Users\Admin\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename
"C:\Users\Admin\Desktop\Bestellung.pdf"
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Dim Signatur As String
Set OutlookApp = CreateObject("Outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
Signatur = .GetInspector
.GetInspector.Display
olOldBody = .HTMLBody
.To = Range("O25")
.CC = Range("O26")
.Subject = Range("O28")
.Body = "Hoi Ruedi" & vbCrLf & vbCrLf & "Die Bestellung findest Du im Anhang." & vbCrLf & _
vbCrLf & "Freundlichen Grüße" & vbCrLf & vbCrLf & "Roger Meier" & vbCrLf & "Meier Delivery at  _
Box" & vbCrLf & Signatur
myAttachments.Add "C:\Users\Admin\Desktop\Bestellung.pdf"
'send
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub

Anzeige
AW: E-Mail Signatur mit VBA einfügen
03.12.2019 23:26:34
volti
Hallo Roger,
ich habe mir Deinen Code nochmal vorgenommen und etwas angepasst. Probiere bitte dieses noch mal aus.
Leider habe ich zur Zeit hier kein Outlook und konnte es nicht testen, hoffe aber, dass es jetzt klappt.
Sub PDFundSenden()
 Dim sSignatur As String, sMailText As String, sLW As String
 LW = "C:\Users\Admin\Desktop"
 ChDir sLW
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sLW & "\Bestellung.pdf"
 With CreateObject("Outlook.Application").CreateItem(0)
   .BodyFormat = 3          'HTML-Format
   .GetInspector
   sSignatur = .HtmlBody
   .To = Range("O25")
   .CC = Range("O26")
   .Subject = Range("O28")
   sMailText = "Hoi Ruedi" & vbCrLf & vbCrLf & "Die Bestellung findest Du im Anhang." & vbCrLf & _
   vbCrLf & "Freundlichen Grüße" & vbCrLf & vbCrLf & "Roger Meier" & vbCrLf & "Meier Delivery at Box"
   .HtmlBody = Replace(sMailText, vbCrLf, "<br>") & sSignatur
   .Attachments.Add sLW & "\Bestellung.pdf"
   'send
   .Display
 End With
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: E-Mail Signatur mit VBA einfügen
03.12.2019 17:34:59
Luschi
Hallo Roger,
bei mir sieht das so aus:

Sub PDFundSenden()
Dim olOldHtmlBody As String
Const lBodyFormat As Integer = 2    ''Html-Format
'unbedingt setzen, da Lw 'C' nicht Standard sein muß
ChDrive "C"
ChDir "C:\Users\Admin\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Admin\Desktop\Bestellung.pdf"
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Set OutlookApp = CreateObject("Outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
.BodyFormat = olBodyFormat
.GetInspector.Display
olOldHtmlBody = .HTMLBody
.To = Range("O25")
.CC = Range("O26")
.Subject = Range("O28")
'bei HTMLBody muß vbCrLF gegen "
" ausgetauscht werden .HTMLBody = "Hoi Ruedi" & "
" & "Die Bestellung findest Du im Anhang." & _ "
" & "Freundlichen Gr?sse" & "
" & "Roger Meier" & "" & _ "Meier Delivery at Box" & "
" & olOldHtmlBody myAttachments.Add "C:\Users\Admin\Desktop\Bestellung.pdf" 'send .Display End With Set OutlookApp = Nothing Set OutlookMailItem = Nothing End Sub
Gruß von Luschi
aus klein-Paris
PS: Leerzeichen vor br> löschen!
Anzeige
AW: E-Mail Signatur mit VBA einfügen
03.12.2019 20:36:04
Roger
Guten Abend Luschi
Vielen Dank für die rasche Antwort. Leider funktioniert es nicht... hast du noch eine Variante?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail Signatur mit VBA einfügen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Gehe in Excel auf Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei) und wähle Einfügen > Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub PDFundSenden()
       ChDir "C:\Users\Admin\Desktop"
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Admin\Desktop\Bestellung.pdf"
    
       Dim OutlookApp As Object
       Dim OutlookMailItem As Object
       Dim myAttachments As Object
       Dim Signatur As String
    
       Set OutlookApp = CreateObject("Outlook.Application")
       Set OutlookMailItem = OutlookApp.CreateItem(0)
       Set myAttachments = OutlookMailItem.Attachments
    
       With OutlookMailItem
           .GetInspector.Display
           Signatur = .HTMLBody
           .To = Range("O25")
           .CC = Range("O26")
           .Subject = Range("O28")
           .Body = "Hoi Ruedi" & vbCrLf & vbCrLf & "Die Bestellung findest Du im Anhang." & vbCrLf & _
                    vbCrLf & "Freundlichen Grüße" & vbCrLf & vbCrLf & "Roger Meier" & vbCrLf & "Meier Delivery at Box" & vbCrLf & Signatur
           myAttachments.Add "C:\Users\Admin\Desktop\Bestellung.pdf"
           .Display
       End With
    
       Set OutlookApp = Nothing
       Set OutlookMailItem = Nothing
    End Sub
  4. Anpassen des Codes: Stelle sicher, dass die Zellreferenzen (z.B. Range("O25")) in deinem Excel-Dokument korrekt sind.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: Signatur verschwindet: Wenn die Signatur in der E-Mail nicht bleibt, stelle sicher, dass du sie in einer Variablen speicherst, bevor du die E-Mail sendest.

    Beispiel:

    Signatur = .HTMLBody
  • Fehler: Blockade bei Filename: Wenn du eine Blockade beim Speichern des PDFs bekommst, überprüfe, ob der Pfad korrekt ist und du die notwendigen Berechtigungen hast.


Alternative Methoden

  • HTML-Signatur verwenden: Du kannst auch eine HTML-Signatur in Outlook einfügen. Dafür musst du den Body-Text in HTML umwandeln.

    Beispiel:

    .HTMLBody = "Dein HTML Text hier" & Signatur
  • Outlook-Objektbibliothek aktivieren: Stelle sicher, dass die Outlook-Objektbibliothek in den Verweisen aktiviert ist, um die Funktionen leichter nutzen zu können.


Praktische Beispiele

Hier ist ein weiteres Beispiel, das die Signatur direkt einfügt:

With OutlookMailItem
    .BodyFormat = 2  ' HTML-Format
    .HTMLBody = "Hallo," & "<br>" & "Hier ist die Bestellung." & "<br>" & Signatur
    ' Weitere Einstellungen
End With

Dieses Beispiel zeigt, wie du die Signatur als HTML einfügst, was besonders nützlich ist, wenn du eine formatierte Signatur verwenden möchtest.


Tipps für Profis

  • Verwende GetInspector: Achte darauf, die Methode .GetInspector korrekt zu verwenden, um sicherzustellen, dass du Zugriff auf die HTML-Daten der E-Mail erhältst.
  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsmechanismen, um unerwartete Probleme beim Versenden der E-Mail zu erkennen und zu beheben.

FAQ: Häufige Fragen

1. Wie kann ich eine HTML-Signatur in Outlook einfügen?
Du kannst eine HTML-Signatur einfügen, indem du den Body der E-Mail mit HTML formatierst und den Text entsprechend anpasst.

2. Was mache ich, wenn mein Makro nicht funktioniert?
Überprüfe die Zellreferenzen und stelle sicher, dass du die richtigen Berechtigungen zum Speichern des PDFs hast. Achte auch darauf, dass Outlook korrekt installiert ist und dein Code keine Syntaxfehler enthält.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige