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

Forumthread: VBA Mail mit Inhalt und bestehender Signatur

VBA Mail mit Inhalt und bestehender Signatur
14.03.2019 12:52:37
Marvin
Hallo zusammen,
ich habe ein Problem mit einem Makro:
ich habe eine Excel Datei in der sich Mailadressen und Ansprechpartner befinden sowie der Pfand für einen Anhang.
nun möchte ich für die Rund 60 Empfänger die Individuelle Mail mit unterschiedlichen Anhangen erstellen lassen und in die entwürfe speichern lassen.
es funktioniert auch alles einwandfrei, bis auf eine Sachen....
wenn ich erst den Text einfüge und dann die Signatur rutscht der Text immer unter die Signatur auch wenn ich vorher sage SendKeys "{END}", True.
Wenn ich erst die Signatur und dann den Text einfüge löscht er den vorherig eingefugten Text raus und ersetzt ihn durch die Signatur.
Vielen Dank für Tipps im Voraus!
liebe Grüße Marvin
'##################### Daten in Mail einfügen#############################
Dim name As String
Dim maili As String
Dim mailcc As String
Dim betreff As String
Dim anhang As String
Dim i As Long
Dim olapp As Object
Dim str As String
Dim str_design1 As String
Dim str_design2 As String
Dim str_satz1 As String
Dim str_satz2 As String
Dim str_ende As String
Dim str_Signatur As String
'Application.ScreenUpdating = False
i = 2 'ab Zeile 2 werden die Einträge für E-Mail adressen gesucht
While Worksheets("Adressen").Cells(i, 1).Value ""
str = "" 'kann leer bleiben
maili = Worksheets("Adressen").Cells(i, 1).Value 'Mailadresse in Spalte A
name = Worksheets("Adressen").Cells(i, 2).Value 'Ansprechpartner Spalte B
anhang = Worksheets("Adressen").Cells(i, 5).Value 'Pfad zum Anhang in Spalte E
mailcc = "" 'kann leer bleiben
betreff = "BETREFF_BETREFF_BETREFF"
Set olapp = CreateObject("Outlook.Application")
str_design1 = ""
str_design2 = "
"
str = str_design1 & "Guten Tag " & name & ",
" & str_design2
str_satz1 = str_design1 & "TEXT_TEXT_TEXT_TEXT.
" & str_design2
str_ende = str_design1 & "Mit freundlichen Grüßen
TEXT_TEXT_TEXT" & str_design2
str = str & str_satz1 & str_satz2 & str_ende
With olapp.CreateItem(0)
.HtmlBody = str
.To = maili
.Subject = betreff
.cc = mailcc
.attachments.Add anhang
.Display
SendKeys "{END}", True
str_Signatur = "extern"
.getinspector.CommandBars.Item("Insert").Controls("signatur").Controls(str_Signatur).Execute
.Save
End With
Set olapp = Nothing
i = i + 1
Wend
Application.ScreenUpdating = True
MsgBox "Email im Outlook - Entwürfe gespeichert!" & vbNewLine & "Daten vor Versand prüfen!", vbInformation, " Fertig"
End Sub
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Mail mit Inhalt und bestehender Signatur
14.03.2019 18:43:20
Sepp
Hallo Marvin,
probiere es mal so.
With olapp.CreateItem(0)
  str_Signatur = "extern"
  .getinspector.CommandBars.Item("Insert").Controls("signatur").Controls(str_Signatur).Execute
  .HTMLBody = Str & .HTMLBody
  .To = maili
  .Subject = betreff
  .cc = mailcc
  .attachments.Add anhang
  '.Display 
  .Save
End With

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: VBA Mail mit Inhalt und bestehender Signatur
15.03.2019 08:16:39
Marvin
Hallo Sepp,
Vielen Dank! es läuft einwandfrei !!!
AW: VBA Mail mit Inhalt und bestehender Signatur
15.03.2019 08:56:29
Luschi
Hallo Sepp & Marvin,
diese schöne Lösung zum Festlegen einer beliebigen Outlook-Signatur funktioniert nur bis Version 2010.
In 2013 ff. hatte MS weiter nichts zu tun, als das gesamte CommandBar-Object vor jeglichem Zugriff durch Vba zu sperren. Was für ein Wahnsinn, ich habe ein ¼ Jahr gebraucht. um eine vernüftige Lösung für dieses Problem zu finden: leider kochen die Amerikaner da auch nur mit Wasser und schreiben viel Unsinn, wenn der Tag lang ist und ein gutes Outlook-Vba Buch neueren Datums sucht man vergebens.
Meins ist von Sue Mosher zu Outlook-Vba 2007.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Mail mit Inhalt und bestehender Signatur
15.03.2019 09:24:46
Marvin
Hey Luschi,
Danke für den Hinweis...... wir bekommen im laufe diesen Jahres noch Office 2016........ bisher habe ich mich darauf gefreut, dies ändert sich gerade....
meinst du ich dürfte deine Lösung ab diesem Zeitpunkt übernehmen ?
Gruß Marvin
AW: VBA Mail mit Inhalt und bestehender Signatur
15.03.2019 09:32:16
Luschi
Hallo Marvin,
damit Deine Vorfreude wieder ein bischen steigt, hier meine Lösung, die ich vor einem ½ Jahr mal postete.
https://www.herber.de/bbs/user/126157.zip
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Individuelle Mails mit VBA und Outlook-Signatur erstellen


Schritt-für-Schritt-Anleitung

Um individuelle Mails mit einer Outlook-Signatur zu erstellen, kannst du das folgende VBA-Skript verwenden. Dieses Skript ermöglicht es dir, für verschiedene Empfänger personalisierte E-Mails zu generieren und die entsprechende Signatur einzufügen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub EmailsMitSignaturErstellen()
    Dim name As String
    Dim maili As String
    Dim mailcc As String
    Dim betreff As String
    Dim anhang As String
    Dim i As Long
    Dim olapp As Object
    Dim str As String
    Dim str_Signatur As String

    i = 2 'Beginne mit der zweiten Zeile
    While Worksheets("Adressen").Cells(i, 1).Value <> ""
        maili = Worksheets("Adressen").Cells(i, 1).Value
        name = Worksheets("Adressen").Cells(i, 2).Value
        anhang = Worksheets("Adressen").Cells(i, 5).Value
        mailcc = ""
        betreff = "Betreff deiner E-Mail"

        Set olapp = CreateObject("Outlook.Application")

        str = "Guten Tag " & name & "," & vbCrLf & vbCrLf & "Hier ist der Text deiner E-Mail."

        With olapp.CreateItem(0)
            str_Signatur = "extern" 'Namen der Signatur hier anpassen
            .HTMLBody = str & .HTMLBody
            .To = maili
            .Subject = betreff
            .CC = mailcc
            .Attachments.Add anhang
            .Save
        End With

        Set olapp = Nothing
        i = i + 1
    Wend

    MsgBox "E-Mails wurden im Outlook-Entwurf gespeichert!", vbInformation
End Sub
  1. Passe die Variablen str_Signatur und den Text der E-Mail nach Bedarf an.
  2. Führe das Makro aus, um die E-Mails zu erstellen.

Häufige Fehler und Lösungen

  • Problem: Die Signatur wird nicht richtig eingefügt.

    • Lösung: Stelle sicher, dass der Name der Signatur korrekt in der Variable str_Signatur angegeben ist. Wenn du die Signatur manuell einfügen möchtest, kannst du den Code entsprechend ändern.
  • Problem: E-Mails werden nicht im Entwurf gespeichert.

    • Lösung: Überprüfe, ob Outlook geöffnet ist und du die richtigen Berechtigungen hast, um Mails zu speichern.

Alternative Methoden

Wenn du Schwierigkeiten mit dem VBA-Skript hast oder eine andere Methode bevorzugst, kannst du auch die Excel-Funktion HYPERLINK verwenden, um E-Mails zu erstellen. Beispiel:

=HYPERLINK("mailto:" & A2 & "?subject=Betreff&body=Hier ist der Text.", "E-Mail senden")

Diese Methode ist einfacher, bietet jedoch weniger Flexibilität.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Skript anpassen kannst:

  • Um eine Signatur für Exchange 2003 zu verwenden, musst du sicherstellen, dass die Signatur im richtigen Format vorliegt und die entsprechenden Einstellungen in Outlook vorgenommen wurden.
  • Für die Verwendung eines Signatur Buchs kannst du die Signatur direkt aus einer Datei laden, anstatt sie im Code zu definieren.

Tipps für Profis

  • Debugging: Nutze die Debug.Print-Anweisung, um Variablen in der Konsole anzuzeigen, wenn du Fehler beheben möchtest.
  • E-Mail-Vorlage: Erstelle eine E-Mail-Vorlage in Outlook und verwende diese, um die HTML-Body-Inhalte dynamisch zu erstellen.
  • VBA-Buch: Wenn du tiefer in VBA eintauchen möchtest, empfehle ich ein gutes Signatur Buch über VBA für Outlook, wie das von Sue Mosher.

FAQ: Häufige Fragen

1. Wie kann ich meine Outlook-Signatur in VBA einfügen?
Du kannst die Signatur über das CommandBars-Objekt einfügen, wie im Beispiel gezeigt.

2. Funktioniert das Skript auch mit neuen Outlook-Versionen?
Ja, jedoch gibt es Einschränkungen in den neueren Versionen von Outlook, die den Zugriff auf bestimmte Objekte einschränken. Stelle sicher, dass du die neueste Dokumentation überprüfst.

3. Ich bekomme einen Fehler beim Speichern der E-Mail. Was kann ich tun?
Überprüfe deine Berechtigungen und ob Outlook korrekt konfiguriert ist. Stelle sicher, dass alle benötigten Felder im Code ausgefüllt sind.

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