Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1592to1596
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
Zeilenumbruch im String
28.11.2017 13:34:41
Anna
Hallo,
ich hoffe Ihr könnt mir weiterhelfen. Ich sitze gerade an einem Makro, dass aus einer EXCEL-Datei heraus eine E-Mail versenden soll. Die Anrede sowie die E-Mail-Adressen stehen in Zellen auf dem Deckblatt. Jede Adresse steht in einer extra Zeile.
Die Schleife für die E-Mail-Adressen funktioniert wunderbar, aber mit der Schleife, die die Anrede der E-Mail füllen soll, habe ich so meine Probleme: Auf die Anrede soll immer ein Zeilenumbruch folgen (Anrede 1, Zeilenumbruch, Anrede 2, Zeilenumbruch, usw.).
Das Skript funktioniert auch, ich habe nur das Problem, dass es im Testlauf so aussieht, dass er die Anrede 1, Zeilenumbruch, Anrede 2, Zeilenumbruch, Zeilenumbruch, Zeilenumbruch, usw. schreibt und dann erst irgendwo ganz unter der eigentliche Text zu lesen ist. Nach der letzten Anrede würde mir aber schon ein Zeilenumbruch reichen. Ich habe jetzt ein bisschen rumprobiert, aber komme nicht weiter.
Kann mir irgendjemand helfen?
Das ist das, was ich bisher gemacht habe:
Dim OutApp As Object
Dim OutMail As Object
Dim i As Long
Dim MailVerteiler As String
Dim MailAnrede As String
MailVerteiler = " "
MailAnrede = ""
With Sheets("Deckblatt")
For i = 19 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 2).Value " " Then
MailVerteiler = MailVerteiler & .Cells(i, 4).Value & ";"
End If
Next i
If Trim(MailVerteiler) " " Then
MailVerteiler = Left(MailVerteiler, Len(MailVerteiler) - 1)
End If
For i = 19 To .UsedRange.Rows.Count + .UsedRange.Row - 1
If .Cells(i, 2).Value " " And .Cells(i + 1, 2).Value " " Then
MailAnrede = MailAnrede & .Cells(i, 7).Value & vbCrLf
Else
Exit For
End If
Next i
If Trim(MailAnrede) " " Then
MailAnrede = Left(MailAnrede, Len(MailAnrede) - 1)
End If
End With
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = MailVerteiler
.Subject = "Test"
.Body = MailAnrede & _
"Test Test Test"
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schau Dir mal die...
28.11.2017 13:56:13
Case
Hallo Anna, :-)
... "If-Prüfungen" an allen Stellen in deinem Code an: ;-)
If .Cells(i, 2).Value  " " Then
Du prüfst, ob die Zelle ein Leerzeichen enthält, willst aber wahrscheinlich auf leere Zelle prüfen: ;-)
If .Cells(i, 2).Value  "" Then
Ändere das mal an ALLEN Stellen.
Servus
Case

AW: Schau Dir mal die...
28.11.2017 14:19:58
Anna
Hallo Case,
vielen Dank für den Hinweis. Habe es geändert und es funktioniert genau so, wie ich es mir vorgestellt habe. Vielen Dank! :)
Liebe Grüße
Anna
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige