3.2k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

ich schreibe mit VBA in den Body von Outlook und möchte nach der allgemeinen Anrede einen Absatz und Leerzeile einfügen - leider klappt das nicht so wie hier beschrieben:

sBody = "Sehr geehrte Damen und Herren" & Chr(13) & Chr(13) & Cells(iCounter, 4)

Die allgemeine Anrede erscheint zwar, allerdings ohne den Absatz und Leerzeile??? Hat jemand einen Tipp?
Gruß
Andreas

10 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Andreas,

probier es mal mit CHR(10) statt mit CHR(13), oder aber mit vbCrLf (Quelle).

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo M.O.

funktioniert leider beides nicht. Läuft ohne Fehler, aber es gibt weder Absatz noch Leerzeile.
Danke und Gruß
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Andreas,

das kann ich leider nicht nachvollziehen.

Wenn ich bei mir (Office 2007) mit
.Body = "Dies ist der Text von der Testmail! " & vbCrLf & vbCrLf & "Hallo"

diesen Text in einer E-Mail erstelle, wird die Leerzeile eingefügt.

Hast du dir sBody schon mal anzeigen lassen (z.B. mit MsgBox)?

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo Andreas,

nur so 'ne Idee: Hast du schon mal das Anzeigeformat von Body geprüft? Ist das Text oder HTML. Evtl kannst du das per Code umschalten.

Gruß Mr. K
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo Mr. K.
Das ist eine gute Idee! Ich habe das im HTML . Hab aber keine Ahnung wie ich
das in Text umstellen kann. Kannst du mir da noch nen Tipp geben. Sicher
funktioniert dann auch der Vorschlag von M.O.
Gruss
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
...zum besseren Verständnis. Mein Code sieht z.Zt. folgedermaßen aus:

Sub Mail_senden_mit_Signatur()

Sheets("VersandTab").Select
Dim strSignatur As String
Dim oApp As Object
Dim oMail As Object

Dim iRow As Integer, iCounter As Integer
Dim sFile As String, sRec As String, sSub As String
Dim sBody As String
Dim oOLRecip As Object

Set oApp = CreateObject("OUTLOOK.Application")


iRow = Cells(Rows.Count, 1).End(xlUp).Row
For iCounter = 2 To iRow
Application.StatusBar = "Schleife durchläuft Nr: " & iCounter & " von: " & iRow
sRec = Cells(iCounter, 1)
sFile = Cells(iCounter, 2)
sSub = Cells(iCounter, 3)
sBody = "Sehr geehrte Damen und Herren" & vbCrLf & vbCrLf & Cells(iCounter, 4)
Set oMail = oApp.CreateItem(0)

With oMail

Set oOLRecip = .Recipients.Add(sRec)

.Subject = sSub
.GetInspector.Display 'Signatur anzeigen
Set .SendUsingAccount = .Session.Accounts.Item(1)
strSignatur = .HTMLBody

.HTMLBody = "<p><font face=""Calibri"" size=""5""></font></p>" _
& sBody & strSignatur
Set oOLAttach = .Attachments.Add(sFile)

.Send
........
0 Punkte
Beantwortet von
Hi Andreas,

dachte ich mir schon. Die Codes von M.O funktionieren natürlich mit Text. Bevor du das über .Bodyformat umstellst, versuche erstmal dem Text in sBody den Befehl <br> für einen Zeilenumbruch hinzuzugeben. Das ist ein HTML Befehl. Leider kenne ich mich in dieser Sprache nicht wirklich aus, aber dafür reicht's gerade noch.

Gruß Mr. K.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo,

habe die Zeile in

.HTMLBody = "<p><font face=""Calibri"" size=""5""></font></p>" _
& "Sehr geehrte Damen und Herren," < br > sBody & strSignatur

geändert. Allerdings zeigt es mir dann nur noch eine "0" an und der ganze Text ist verschwunden.
Alternativ habe ich es ohne HTML mit
.Body= "Sehr geehrte Damen und Herren,"& vbCrLf & sBody
probiert, dann klappt der Umbruch wie von M.O. vorgeschlagen einwandfrei, allerdings verschwindet dann die vorher eingetragene Signatur blöderweise, die ich aber brauche!
Gruß
A.
0 Punkte
Beantwortet von
Bevor du fragst: Das ist übrigens ein String:
sBody = "Sehr geehrte Damen und Herren<br><br>" & Cells(iCounter, 4)

Sollte theoretisch funktionieren. Kann's leider nicht testen.
Mr. K.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
...funktioniert auch in der Praxis!! Vielen Dank Mr K.!

Danke auch an M.O. Die Textversion funktioniert auch, wäre mir sogar lieber, weil ich keine HMTL-Ahnung habe, nur leider verschwindet bei dieser Variante immer die mit dem E-Mail-Konto definierte Signatur beim Befehl
.Body = sBody
und ich kriege sie nicht mehr rein.
Viele Grüße
Andreas
...