Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verkürzung VBA-Code für senden einer E-Mail
#1
Hi,

mit einem Makro, erstelle ich eine E-Mail mit Signatur.

Im Blatt Vorgaben habe ich in den Zellen C15 bis C27 die Texte stehen, die ich nacheinander zur Gesamtsignatur verknüpfe.
Diese Signatur wird dann im htmlbody aufgerufen, die weiteren Texte für den Body stehen in C9 bis C13.

Hier der entsprechende Ausschnitt aus dem Code:
PHP-Code:
       strSignature Worksheets("Vorgaben").Range("C15") & "<br>" "<b>" Worksheets("Vorgaben").Range("C16") & "</b>" "<br>" _
          Worksheets
("Vorgaben").Range("C17") & "<br><br>" "<img src=""cid:logo.png""height=30 width=300""align=""top"">" "<br>" _
          Worksheets
("Vorgaben").Range("C18") & "<br>" Worksheets("Vorgaben").Range("C19") & "<br>" _
          Worksheets
("Vorgaben").Range("C20") & "<br>" Worksheets("Vorgaben").Range("C21") & "<br>" Worksheets("Vorgaben").Range("C22") & "<br>" _
          Worksheets
("Vorgaben").Range("C23") & "<br>" Worksheets("Vorgaben").Range("C24") & "<br><br>" Worksheets("Vorgaben").Range("C25") & "<br>" _
          Worksheets
("Vorgaben").Range("C26") & "<br>" Worksheets("Vorgaben").Range("C27")

       .htmlBody Worksheets("Vorgaben").Range("C9") & "<br><br>" Worksheets("Vorgaben").Range("C10") & " " _
          Worksheets
("Vorgaben").Range("C11") & "<br><br>" Worksheets("Vorgaben").Range("C12") & "<br>" Worksheets("Vorgaben").Range("C13") & "<br><br>" _
          strSignature 

Ich habe keine Idee, wie ich das zusammenfassen/verkürzen kann. Wie geht denn das?
Mit einer For-Next-schleife geht es ja nicht, wegen den unterschiedlich vielen Zeilenumbrüchen (br). Ich will aber auch nicht den kompletten Text in eine Zelle packen.

Oder kann ich im VBA einschalten, daß die Standard- oder eine andere in Outlook definierte Signatur verwendet wird?

Gruß Ralf
Antworten Top
#2
Hallo,

da Outlook MS-Word integrieren kann, stehen (versteckte) Bookmarks zur Verfügung:

Teil eines funktionierenden Codes:

Code:
dim EML as mailitem

EML.BodyFormat = olFormatHTML


Set Doc = EML.GetInspector.WordEditor


If Doc.Bookmarks.Exists("_MailAutoSig") Then
        Set Bkmrk = Doc.Bookmarks("_MailAutoSig")
        
        If Not Bkmrk Is Nothing Then
            Bkmrk.Select
            Doc.Windows(1).Selection.Delete
            'Bkmrk.Range.Text = "qwe" ' oder "" für löschen
        End If
    End If


Mit Bkmrk.Range.Text = "beliebiger Text" kann eine Signatur gesetzt werden.

mfg
Antworten Top
#3
Hi Fennek,

das heißt, ich lege irgendwo ein verstecktes Bookmark an?
Oder in der Excel-Datei oder Word oder Outlook?

Da bin ich momentan noch überfordert.

MfG
Antworten Top
#4
Ja, das ist leicht verwirrend.

Der Code ist in Outlook gelaufen, muss von XL aus also mit der Outlook.Application refenziert werden. Mit "Doc = EML.GetInspector.WordEditor" wird Word als Editor gestartet und alle Word-VBA-Befehler stehen zur Verfügung. Das versteckte Bookmark "_MailAutoSign" wird m.W.n. von Outlook automatisch generiert.

Von Xl aus habe ich es nie getestet.
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Rabe
Antworten Top
#5
Hi,

ich glaube, das ist mir momentan zu kompliziert.

Darum erneuere ich die erste Frage:
Rabe schrieb:Ich habe keine Idee, wie ich das zusammenfassen/verkürzen kann. Wie geht denn das?
Antworten Top
#6
Hi Ralf,


probiere mal das:


Code:
With Worksheets("Vorgaben")
    For loco = 15 To 27
        strSignature1 = strSignature1 & .Cells(loco, 3) & "<br>"
            If loco = 15 Then strSignature = strSignature & "<b>"
            If loco = 16 Then strSignature = strSignature & "</b>"
            If loco = 17 Then strSignature = strSignature & "<br>" & "<img src=""cid:logo.png""height=30 width=300""align=""top"">" & "<br>"
            If loco = 24 Then strSignature = strSignature & "<br>"
    Next
End With
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Rabe
Antworten Top
#7
Hi Edgar,

danke. So geht es => Klasse

Das verstehe ich auch und kann es nachvollziehen.

Gruß Ralf
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste