Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Serienmail - doppelte Leerzeile vor Signatur

VBA Serienmail - doppelte Leerzeile vor Signatur
30.05.2018 15:17:34
Marion
Hallo zusammen,
nachdem ich mittlerweile stundenlang erfolglos das Netz durchsucht habe, versuche ich es jetzt einmal hier.
Die Problemstellung: Ich möchte über VBA eine Serienmail verschicken, für die die relevanten Parameter in einem Tabellenblatt "Verteiler" eingetragen sind. Das klappt auch alles super (Empfänger, Betreff, Anhänge, Signatur einfügen, Fehlermeldungen). Es gibt nur noch einen kleinen Schönheitsfehler in der Mail, den ich bisher nicht beheben konnte. Und zwar fügt Outlook vor Signaturen ja standardmäßig zwei Leerzeilen ein (das kann man meines Wissens auch nicht ändern). Ich möchte allerdings nur eine Leerzeile zwischen Textblock und Signatur haben. (Wie) kann man das umsetzen? Meine VBA-Kenntnisse reichen leider nicht aus, um den htmlbody zu bearbeiten. Ich weiß, das ist eher ein kleineres Problem, aber vielleicht fühlt sich ja jemand herausgefordert ;).
Anbei zur Info noch der aktuelle Code:

Sub Emails_versenden_vorab()
Dim OutlookApp As Object
Dim objMail As Object
Dim i As Long
Dim intZähler As Integer
Dim strPfadAnhangVorab As String, strNameAnhangVorab As String
Dim strSignatur As String
Set OutlookApp = CreateObject("Outlook.Application")
intZähler = Sheets("Verteiler").Cells(Rows.Count, 4).End(xlUp).Row
For i = 7 To intZähler
If Sheets("Verteiler").Cells(i, 4)  "" Then
Set objMail = OutlookApp.CreateItem(olMailItem)
With objMail
strPfadAnhangVorab = Cells(1, 3).Value
strNameAnhangVorab = Cells(i, 6).Value
If Dir(strPfadAnhangVorab & strNameAnhangVorab)  "" Then
.GetInspector.Display
strSignatur = .HTMLBody
.To = Cells(i, 3).Value
.Subject = Cells(i, 4).Value
.HTMLBody = "" & Replace(Cells(i,  5).Value,  _
Chr(10), "
") & strSignatur .Attachments.Add strPfadAnhangVorab & strNameAnhangVorab .Send Else MsgBox ("Für den Bereich " & Cells(i, 1).Value & " konnte keine Vorab-Datei _ gefunden werden.") End If End With Set objMail = Nothing End If Next i Set OutlookApp = Nothing End Sub Vielen Dank schon einmal vorab für eure Antworten!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Serienmail - doppelte Leerzeile vor Signatur
30.05.2018 16:08:10
Robert
Hallo Marin,
ich arbeite nicht mit Outlook und kann daher nur mal eine Lösung vermuten.
Ich nehme an mit der Zeile
strSignatur = .HTMLBody
kopierst Du die Signatur, mit den zwei Leerzeilen in die Variable strSignatur. Da die Leerzeilen vermutlich durch Zeilenumbrüche, die ja auch ein Zeichen darstellen, erstellt werden, würde ich folgende Änderung vorschlagen:
strSignatur = Mid(.HTMLBody,2)
Damit wird der "alte" Body-Bereich erst ab dem zweiten Zeichen in die Variable übernommen. Die erste Leerzeile müsste damit verschwunden sein.
Gruß
Robert
AW: VBA Serienmail - doppelte Leerzeile vor Signatur
30.05.2018 17:32:30
Luschi
Hallo Marion,
die 2 Leerzeilen in der Signatur sind gut versteckt und stehen nicht am Anfang der Signatur
bei mir klappt das so:

Dim sLeer As String
sLeer = Chr(60) & "o:p" & Chr(62) & Chr(38) & "nbsp;" & Chr(60) & _
"/o:p" & Chr(62)
Debug.Print sLeer
Set objMail = OutlookApp.CreateItem(0)
With objMail
.GetInspector.Display
strSignatur = .HTMLBody
strSignatur = Replace(strSignatur, sLeer, "", 1, 1, vbTextCompare)
.HTMLBody = "blasblabla" & strSignatur
''strSignatur = Replace(strSignatur, "

 

", "", 1, 1, vbTextCompare) 'usw. End With
Leider verhindert die Forensoftware das direkte Angeben des Ersetzungsstrings im Replace-Befehl, deshalb die Umschreibung mit Chr(...). Das kannst Du natürlich in Deiner Datei auch wieder austauschen.
Leider kann ich z.Z. keine Datei hochladen (weder *.txt, *.jpg, *.xl*)
Gruß von Luschi
aus klein-Paris
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Serienmail - doppelte Leerzeile vor Signatur
30.05.2018 18:19:28
Robert
Hallo Luschi,
gut zu wissen, Fragen bezüglich Outlook tauchen ja immer wieder mal auf.
Für alle, die den Ersetzungsstring lesen wollen, er lautet: <o:p>&nbsp;</o:p>
In diesem Forum kann man die HTML-Sonderzeichen wie folgt in den Post integrieren:
< erreicht man mit der Eingabe von &lt;
> erreicht man mit der Eingabe von &gt;
& erreicht man mit der Eingabe von &amp;
Gruß
Robert
AW: VBA Serienmail - doppelte Leerzeile vor Signatur
31.05.2018 11:56:22
Luschi
Hallo Robert,
danke für diesen Tipp, eigentlich war ich der Überzeugung, daß ~f~ das Problem in diesem Forum löst - aber Pustekuchen.
Wenn Du Dir mal den Inhalt von 'strSignatur' anschaust, da kann man nur staunen, was das Alles drinsteht, ohne daß man es wirklich erklären kann.
Noch etwas komplizierter wird es, wenn man nicht die Standard-Signatur, sondern (wie beim Sekretärinnen üblich) eine Wunsch-Signatur einsetzen will. Aber aucg dies habe ich gelöst.
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige