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

Signatur in Email

Forumthread: Signatur in Email

Signatur in Email
22.11.2020 14:20:38
Sabbel
Hallo Leute.
Ich weiß dass es schon 100 Beiträge dazu gibt. Aber ich bekomme es einfach nicht hin.
Ich sende per VBA eine Mail, das funktioniert.
Nun möchte ich das eine Signatur eingefügt werden soll.
Habe mir Sachen aus dem Internet zusammen gesucht.
Bekomme es aber nicht hin
Die Mail wird versendet.
Aber die Signatur wird nicht angezeigt und es kommt ein Laufzeitfehler 5
Hier die Testdatei:
https://www.herber.de/bbs/user/141765.xlsm
Gruß Sabbel
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Signatur in Email
22.11.2020 19:16:14
volti
Hallo Sabbel,
geht es hier um die Auswahl einer Signatur aus mehreren Signatueren oder nur um die Einfügung der Standard-Signatur.
Diese kannst Du mit .GetInspector holen und hinten dran fügen. Siehe Beispiel
Ich denke, die Zwischenspeicherung der einzelnen Komponenten in Variablen kannst Du Dir auch sparen.
Code:
[Cc]

Sub mail_senden() Dim WSh As Worksheet Set WSh = ThisWorkbook.Sheets("Tabelle1") With CreateObject(Class:="Outlook.Application").CreateItem(0) .Getinspector .To = Range("C6").Value .Subject = Range("C7").Value .Body = Range("C9") & .Body ' For Each vntItem In avntAttachments ' Call .Attachments.Add(vntItem) ' Next .Display 'Anzeigen ' Call .Send 'direkt senden End With End Sub

____________
viele Grüße 😊
Karl-Heinz

Anzeige
AW: Signatur in Email
22.11.2020 19:30:45
onur
Was du im Internet dazu findest, ist zu 99,9% veraltet, da es mit dem "neuen" Outlook (ab 2006?) nicht mehr funktioniert.
"htmlBody" enthält bereits die Standard-Signatur.
Guckst du hier:
Sub mail_senden()
Dim objOutlook As Object, objMail As Object
Dim olOldBody As String
Set objOutlook = CreateObject(Class:="Outlook.Application")
Dim Inhalt As String, Mail As String, Body As String, WahlSignatur As String, strSignatur
Mail = Range("C6")
Inhalt = Range("C7")
Body = Range("C9")
WahlSignatur = Range("C8")
Set objMail = objOutlook.CreateItem(0)
With objMail
.GetInspector.Display
olOldBody = .htmlBody
.To = Mail
.Subject = Inhalt
.htmlBody = Inhalt & olOldBody
End With
Set objMail = Nothing
Set objOutlook = Nothing
End Sub

Signatur wählen kannst du nicht, höchstens das Konto, indem du direkt hinter die "With objMail"-Zeile
Set SendUsingAccount = .Session.Accounts.Item("Kontoname") ' Konto auswählen 

einfügst.
Anzeige
AW: Signatur in Email
23.11.2020 10:40:48
Luschi
Hallo Uli,
in Deinem Code sind 3 Störfaktoren, die verhindern, daß in der Signatur 1 beffindliche Grafik _ auch angezeigt wird, hier meine Änderungen:

With objMail
.BodyFormat = 2   'olFormatHTML
.GetInspector.Display 'Leer Mail mit Signatur
olOldBody = .HtmlBody 'in Variable olOldBody die leer Mail mit Signatur abspreichern
.To = Mail
.Subject = Inhalt
.HtmlBody = Body & olOldBody 'Hier wird die leere mail mit der Signatur an den neuen Body  _
angehängt
'      For Each vntItem In avntAttachments
'          Call .Attachments.Add(vntItem)
'      Next
'      .Send 'direkt senden      End With
Gruß von Luschi
aus klein-Paris
Anzeige
Nachtrag Signatur in Email
23.11.2020 11:01:12
Luschi
Hallo Excel-Fan's
eine besondere Herausforderung seit Outlook 2013 ist, daß der Inhaber von mehreren Signaturen per Outlook-Oberfläche die Wunsch-Signatur einstellen kann, der vba-Programmierer damit aber ein riesiges Problem hat - denn seit diesem Zeitpunkt ist das CommandBar-Object für jeglichen Vba-Zugriff gesperrt und alle Vba-Lösungen vor O-2013 sind passé.
Ich habe an dieser Lösung rund ein halbes Jahr im I-Net gesucht aber immer nur Hilfesuche zum selben Thema gefunden, egal ob in deutschen oder engl./amerikanischen Foren.
Inzwischen ist für mich dieses Thema erledigt/gelöst und wer ein bißchen googelt, wird meine Lösung auch finden. Für ein aktuelles Projekt habe ich die Outlook-Signatur von Outlook entkoppelt und kann jetzt ganz entspannt per DropDown die gewünschte Signatur auswählen lassen und in die EMail per vba einfügen.
Gruß von Luschi
aus klein-Paris
Anzeige
Vielen Dank euch .. funktioniert wunderbar owT
22.11.2020 21:13:33
Sabbel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Signatur in Email mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um eine Signatur in eine E-Mail mit VBA einzufügen, kannst du folgenden Code verwenden. Dieser Code sorgt dafür, dass die in Outlook hinterlegte Standard-Signatur automatisch eingefügt wird.

Sub mail_senden()
    Dim objOutlook As Object, objMail As Object
    Dim olOldBody As String
    Set objOutlook = CreateObject(Class:="Outlook.Application")

    Dim Mail As String, Inhalt As String, Body As String
    Mail = Range("C6").Value
    Inhalt = Range("C7").Value
    Body = Range("C9").Value

    Set objMail = objOutlook.CreateItem(0)
    With objMail
        .GetInspector.Display
        olOldBody = .htmlBody
        .To = Mail
        .Subject = Inhalt
        .htmlBody = Body & olOldBody ' Hier wird die Signatur eingefügt
    End With

    Set objMail = Nothing
    Set objOutlook = Nothing
End Sub

Häufige Fehler und Lösungen

  1. Fehler: Outlook-Signatur wird nicht angezeigt

    • Stelle sicher, dass die Standard-Signatur in Outlook korrekt konfiguriert ist. Manchmal kann es vorkommen, dass die Signatur nicht angezeigt wird, wenn sie nicht richtig hinterlegt ist.
  2. Fehler: Laufzeitfehler 5

    • Dieser Fehler tritt häufig auf, wenn auf nicht existierende Objekte zugegriffen wird. Überprüfe die Variablen und stelle sicher, dass alle benötigten Daten in den Zellen vorhanden sind.

Alternative Methoden

Wenn du eine spezifische Signatur auswählen möchtest, anstatt die Standard-Signatur zu verwenden, kannst du die Signatur in eine Variable speichern und sie dann in den E-Mail-Body einfügen. Hier ist ein Beispiel:

Dim strSignatur As String
strSignatur = "Hier deine Signatur" ' Füge hier deine Signatur ein
.htmlBody = Body & strSignatur

Auf diese Weise kannst du eine benutzerdefinierte Signatur in die E-Mail einfügen.


Praktische Beispiele

Hier ist ein vollständiges Beispiel, das die Verwendung der olFormatHTML-Eigenschaft zeigt:

With objMail
    .BodyFormat = 2 ' olFormatHTML
    .GetInspector.Display
    olOldBody = .HtmlBody
    .To = Mail
    .Subject = Inhalt
    .HtmlBody = Body & olOldBody ' Signatur wird hier hinzugefügt
End With

Stelle sicher, dass du die richtige Formatierung verwendest, um sicherzustellen, dass die Signatur korrekt dargestellt wird.


Tipps für Profis

  1. Outlook Signatur kopieren: Wenn du eine Signatur von einer anderen E-Mail oder Quelle kopieren möchtest, kannst du den HTML-Code der Signatur in eine Variable speichern und dann in die E-Mail einfügen.

  2. Fehlerbehebung: Wenn die Signatur nicht angezeigt wird, überprüfe die Einstellungen in Outlook und teste den Code mit einer simplen E-Mail, um sicherzustellen, dass die Funktionalität gegeben ist.

  3. Benutzerdefinierte Signaturen: Wenn du mehrere Signaturen verwalten möchtest, könnte das Erstellen eines Dropdown-Menüs in Excel eine nützliche Lösung sein.


FAQ: Häufige Fragen

1. Frage: Wie kann ich mehrere Signaturen in Outlook verwalten? Antwort: Du kannst mehrere Signaturen in Outlook erstellen und diese über die Einstellungen verwalten. VBA unterstützt jedoch nur die standardmäßige Signatur, es sei denn, du implementierst eine benutzerdefinierte Lösung.

2. Frage: Warum wird meine HTML-Signatur nicht korrekt angezeigt? Antwort: Stelle sicher, dass die Signatur im HTML-Format vorliegt und dass die BodyFormat-Eigenschaft auf olFormatHTML gesetzt ist. Prüfe auch, ob alle Grafiken und Links korrekt eingebunden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige