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

Forumthread: VBA Signatur einfügen

VBA Signatur einfügen
Gisela
Hallo,
ich maile eine Excelliste regelmäßig mit VBA und OUTLOOK: das funktioniert auch. Jetzt möchte mein Chef, dass unter den Begleittext auch die Signatur angegeben wird.
Da ich nur einige Makro-Recorder-Kenntnisse habe, weiss ich nicht, was ich an meinem Makro verändern muß.
Wer kann mir bitte dabei helfen?
Hier der Makro
Sub Sendetag()
Application.ScreenUpdating = False
Dim olApp As Object, Mail As Object
Dim objNachrich As Object
Set olApp = CreateObject("Outlook.Application")
Set objNachrich = olApp.CreateItem(0)
Set Mail = objNachrich
Mail.To = "aaaaaaa@gmx.de"
Mail.BCC = "yyyyyyyy@bbb. de"
Mail.To = "xxxxxxxxx@gmx.de "
Mail.BCC = "ddddddd@ddd.de"
Mail.Body = "Hallo, fgfgfgfgfgfgfgfg," & Chr(10) & Chr(10) _
& "anbei die liste gggggggg vom" & "  " & Format(Date, "dd-MM-yyyy") & "  " & Chr(10) & Chr( _
10) _
& "Viele Grüße" & Chr(10) _
& "klklklklkl" & Chr(10) & Chr(10) & "ananannanananan" & Chr(10) & Chr(10) _
Mail.Subject = "tztztztztztztz"
Mail.Subject = Format(Date, "dd-MM-yyyy") & "  " & "tztztztzghgghghghghghghggggg" & Mail. _
Subject
Mail.Attachments.Add "C:\Dokumente und Einstellungen\fgfgfgfgfgfg\Desktop\asasasasasa.xls"
Mail.send
olApp.Quit
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = False
End Sub
Vielen Dank und Grüße
Gisela
Anzeige
AW: VBA Signatur einfügen
01.08.2012 14:58:46
Rudi
Hallo,
das ist schon oft gefragt worden!
Vielleicht so, keine Ahnung. Hab kein OL.
Sub Sendetag()
Application.ScreenUpdating = False
Dim olApp As Object, Mail As Object
Dim objNachrich As Object
Set olApp = CreateObject("Outlook.Application")
Set objNachrich = olApp.CreateItem(0)
Set Mail = objNachrich
With Mail
.GetInspector
.To = "aaaaaaa@gmx.de"
.BCC = "yyyyyyyy@bbb. de"
.Body = "Hallo, fgfgfgfgfgfgfgfg," & Chr(10) & Chr(10) _
& "anbei die liste gggggggg vom" & "  " & Format(Date, "dd-MM-yyyy") & "  " & Chr(10) &  _
Chr(10) _
& "Viele Grüße" & Chr(10) _
& "klklklklkl" & Chr(10) & Chr(10) & "ananannanananan" & Chr(10) & Chr(10) _
& .Body
.Subject = "tztztztztztztz"
.Subject = Format(Date, "dd-MM-yyyy") & "  " & "tztztztzghgghghghghghghggggg" & .Subject
.Attachments.Add "C:\Dokumente und Einstellungen\fgfgfgfgfgfg\Desktop\asasasasasa.xls"
.Send
End With
olApp.Quit
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = False
End Sub

Gruß
Rudi
Anzeige
AW: VBA Signatur einfügen
01.08.2012 15:08:29
mumpel
Hallo!
So funktioniert das nicht, lieber Rudi. ;-) So einfach ist das nämlich nicht.
Beispiel:
"Subject" kann es nur einmal geben, nicht zweimal.
Gruß, René
So funktioniert das nicht
01.08.2012 15:21:34
Rudi
Hallo,
ich sach ja, ich hab keine Ahnung.
"Subject" kann es nur einmal geben, nicht zweimal.
Hab ich 1:1 aus ihrem Code übernommen. Angeblich funzt der ja bis auf die Signatur.
Gruß
Rudi
Anzeige
AW: So funktioniert das nicht
01.08.2012 16:08:05
mumpel
Nimm die Preview von Office 2013 und probier es. ;-)
AW: So funktioniert das nicht
02.08.2012 09:53:44
Luschi
Hallo René,
da ich in Outlook 2010 fünf verschiedene Signaturen (privat, Firma, Verein usw.) habe, mache _ ich das so:

Sub test()
Dim olApp As Object
Dim olOldBody As String
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
' Set .SendUsingAccount = .Session.Accounts.Item("Kontoname") ' Sendekonto vorwählen. _
'Ab Outlook 2007 möglich
olOldBody = .htmlBody
.To = Tabelle1.Cells(6, 2).Value
.Subject = "test " & empfaenger
.htmlBody = "dies ist ein test
" & olOldBody .Display 'Mail nur Anzeigen Nicht senden VBA.SendKeys "^{END}", True 'Einfügen einer bestimmten Signatur strSignatur = "meinePrivateSignatur" 'strSignatur = "meineFirmenSignatur" .GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _ Execute End With End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: So funktioniert das nicht
02.08.2012 11:11:00
Gisela
Hallo,
vielen Dank für die Hilfe. Nur irgendwie fehlt mir der Durchblick.
Was bedeutet
.to=Tabelle.Cells(6, 2).Value ?
Bei mir steht da der Mailempfänger.
Mir ist auch nicht klar, wie ich eine Datei aus Laufwerk C als Anlage anhängen und kann. Im alten Makro ohne Signatur funktioniert das.
Ich bin für jede hilfe dankbar.
Liebe Grüße
Gisela
Anzeige
AW: So funktioniert das nicht
02.08.2012 11:43:49
Luschi
Hallo Gisela,
hier mal Deinen 1. geposteten Vba-Code angepaßt:

Sub Sendetag()
Application.ScreenUpdating = False
Dim olApp As Object, Mail As Object
Dim objNachrich As Object
Set olApp = CreateObject("Outlook.Application")
Set objNachrich = olApp.CreateItem(0)
Set Mail = objNachrich
With Mail
.To = "aaaaaaa@gmx.de"
.BCC = "yyyyyyyy@bbb. de"
.To = "xxxxxxxxx@gmx.de "
.BCC = "ddddddd@ddd.de"
.Body = "Hallo, fgfgfgfgfgfgfgfg," & Chr(10) & Chr(10) _
& "anbei die liste gggggggg vom" & "  " & Format(Date, "dd-MM-yyyy") & "  " & _
Chr(10) & Chr(10)
.Subject = "tztztztztztztz"
.Subject = Format(Date, "dd-MM-yyyy") & "  " & "tztztztzghgghghghghghghggggg" & _
.Subject
.ReadReceiptRequested = True
.Attachments.Add "C:\Dokumente und Einstellungen\fgfgfgfgfgfg\Desktop\asasasasasa.xls"
'Mail nun Anzeigen - wichtig, damit 'GetInspector' funktioniert
.Display
'Cursor ans Ende der EMail setzen
VBA.SendKeys "^{END}", True
'Name der gespeicherten Signatur - bitte anpassen
strSignatur = "Gisela"
'Einfügen einer bestimmten Signatur
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
Execute
.Send
End With
olApp.Quit
Set olApp = Nothing
Set objNachrich = Nothing
Set Mail = Nothing
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
Herzlichen Dank, funktioniert
02.08.2012 13:16:34
Gisela
Hallo Luschi,
vielen Dank für deine Hilfe. Funktioniert jetzt wie gewünscht.
Liebe Grüße
Gisela
AW: VBA Signatur einfügen
02.08.2012 07:54:15
Gisela
Hallo,
erstmal vielen Dank für eure Hilfe.
Habt natürlich vollkommen recht. Zweimal Subject geht nicht. Im Original steht auch nur ein subject drin. Sorry, ist hier beim einfügen passiert.
Werd eure Anregungen im laufe des morgens mal versuchen umzusetzen. Melde mich dann wieder.
Grüße
Gisela
Anzeige
AW: VBA Signatur einfügen
02.08.2012 08:56:50
Gisela
Hallo Rene,
hab deinen Vorschlag ausprobiert. Funktioniert; habe die Signatur in der Mail.
Was muss ich ändern, damit ich diese Teile meines alten Makros umsetzen kann:
Mail.Subject = Format(Date, "dd-MM-yyyy") & " " & "tztztztzghgghghghghghghggggg" & Mail. _
Subject
Mail.Attachments.Add "C:\Dokumente und Einstellungen\fgfgfgfgfgfg\Desktop\asasasasasa.xls"
Mail.send
Hierbei wird eine Datei, die sich auf dem Desktop befindet als Anlage beigefügt.
Ebenso wird im Subject das Datum von heute angefügt.
Hast Du da noch einen Tipp?
Vielen Dank und Grüße
Gisela
Anzeige
AW: VBA Signatur einfügen
02.08.2012 11:25:41
Rudi
Hallo,
teste mal:
Sub test()
Dim olApp As Object
Dim olOldBody As String, olSubject As String
olSubject = Format(Date, "dd-MM-yyyy") & "  " & "tztztztzghgghghghghghghggggg" & " _
tztztztztztz"
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
' Set .SendUsingAccount = .Session.Accounts.Item("Kontoname") ' Sendekonto vorwählen. Ab  _
Outlook 2007 möglich
.GetInspector.Display
olOldBody = .htmlBody
.To = "abcde@xyz.de"
.Subject = olSubject
.htmlBody = "dies ist ein test
" & olOldBody .Attachments.Add "C:\Dokumente und Einstellungen\fgfgfgfgfgfg\Desktop\asasasasasa.xls" End With End Sub

Gruß
Rudi
Anzeige
AW: VBA Signatur einfügen
02.08.2012 12:53:38
Gisela
Hallo Rudi,
vielen Dank für deine Hilfe. Funktioniert leider noch nicht ganz.
Ich habs jetzt mal so umgesetzt:
Dim olApp As Object
Dim olOldBody As String
olSubject = Format(Date, "dd-MM-yyyy") & " " & "fgfgffgfgfgfgfgfgfg" & ""
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = "hghghghgh@gmx.de"
.Subject = olSubject
.htmlBody = "test," br > " test" & " " & Format(Date, "dd-MM-yyyy") & " " br > _
"test " olOldBody
.Attachments.Add "C:\Dokumente und Einstellungen\test\Desktop\test.xls"
.send
End With
Jetzt wird zwar die Tabelle angehängt. Subject funktioniert auch. Aber htmlBody und die Signatur fehlen.
Kann mir da noch jemand weiter helfen?
Vielen Dank und liebe Grüße
Gisela
Anzeige
AW: VBA Signatur einfügen
02.08.2012 13:18:58
Rudi
Hallo,
da hast du ein paar der <> falsch
.htmlBody = "test, test " & Format(Date, "dd-MM-yyyy") & " " _
& "test " & olOldBody
Gruß
Rudi
AW: VBA Signatur einfügen
02.08.2012 16:25:00
mumpel
Zwischen br und den Spitzklammern darf kein Leerzeichen stehen. <br>
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Signatur in Outlook einfügen


Schritt-für-Schritt-Anleitung

Um eine Signatur in eine E-Mail über VBA einzufügen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und aktiviere die Entwickleroptionen:

    • Klicke auf "Datei" -> "Optionen" -> "Menüband anpassen" und aktiviere die "Entwicklertools".
  2. Erstelle ein neues Makro:

    • Gehe auf "Entwicklertools" und klicke auf "Visual Basic".
  3. Füge den folgenden VBA-Code ein:

    Sub Sendetag()
       Application.ScreenUpdating = False
       Dim olApp As Object, Mail As Object
       Set olApp = CreateObject("Outlook.Application")
       Set Mail = olApp.CreateItem(0)
    
       With Mail
           .To = "deineEmail@gmx.de"
           .Subject = "Betreff hier einfügen"
           .Body = "Hallo," & vbCrLf & vbCrLf & "Hier ist deine Nachricht." & vbCrLf & vbCrLf
           .Attachments.Add "C:\Pfad\zu\deiner\Datei.xlsx" ' Datei anhängen
           .Display ' Zeige die E-Mail an
    
           ' Hier wird die Signatur hinzugefügt
           Dim strSignatur As String
           strSignatur = "DeineSignatur" ' Hier den Namen der Signatur anpassen
           .GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur).Execute
    
           .Send ' E-Mail senden
       End With
    
       Set Mail = Nothing
       Set olApp = Nothing
       Application.ScreenUpdating = True
    End Sub
  4. Passe die E-Mail-Adresse, den Betreff und den Dateipfad an.

  5. Führe das Makro aus, um die E-Mail mit der Signatur zu versenden.


Häufige Fehler und Lösungen

  • Fehler: Signatur wird nicht hinzugefügt:

    • Stelle sicher, dass der Name der Signatur korrekt im Code angegeben ist.
  • Fehler: E-Mail wird nicht gesendet:

    • Überprüfe, ob Outlook geöffnet ist und ob die E-Mail-Adresse korrekt ist.
  • Fehler: .GetInspector nicht verfügbar:

    • Dieser Fehler tritt auf, wenn die E-Mail nicht mit .Display angezeigt wurde. Stelle sicher, dass die Zeile .Display vor der Signatur-Einfügung steht.

Alternative Methoden

Falls du keine VBA-Kenntnisse hast, kannst du auch die Outlook-Oberfläche nutzen, um eine Signatur manuell einzufügen:

  1. Outlook öffnen und auf "Datei" klicken.
  2. Optionen auswählen und dann "E-Mail".
  3. Signaturen klicken und eine neue Signatur erstellen oder eine bestehende bearbeiten.

Praktische Beispiele

Hier ist ein Beispiel für das Einfügen einer HTML-Signatur in Outlook über VBA:

Sub SendMailWithHTMLSignature()
    Dim olApp As Object
    Set olApp = CreateObject("Outlook.Application")
    Dim Mail As Object
    Set Mail = olApp.CreateItem(0)

    With Mail
        .To = "deineEmail@gmx.de"
        .Subject = "Betreff mit HTML-Signatur"
        .HTMLBody = "<html><body>Hallo,<br><br>Dies ist eine E-Mail mit HTML-Signatur.<br></body></html>"
        .Display ' Zeige die E-Mail an
        .GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls("DeineHTMLSignatur").Execute
        .Send ' E-Mail senden
    End With

    Set Mail = Nothing
    Set olApp = Nothing
End Sub

Tipps für Profis

  • Nutze die Möglichkeit, verschiedene Signaturen für verschiedene Konten zu erstellen, um die Übersichtlichkeit zu erhöhen.
  • Erstelle eine spezielle Makro-Taste in Excel, um den Versand zu automatisieren.
  • Teste deine Makros in einer sicheren Umgebung, bevor du sie im Produktionsbetrieb einsetzt.

FAQ: Häufige Fragen

1. Wie füge ich eine Signatur in eine bestehende E-Mail ein?
Du kannst die .Display-Methode verwenden, um die E-Mail anzuzeigen und dann die Signatur über die .GetInspector-Methode hinzuzufügen.

2. Kann ich mehrere Signaturen in Outlook verwalten?
Ja, Outlook erlaubt es dir, mehrere Signaturen zu erstellen und zu verwalten. Du kannst die gewünschte Signatur im VBA-Code oder über die Benutzeroberfläche auswählen.

3. Was ist der Unterschied zwischen .Body und .HTMLBody?
.Body ist für einfachen Text und .HTMLBody für formatierte HTML-Inhalte. Verwende .HTMLBody, wenn du formatierte Texte oder Links einfügen möchtest.

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