Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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

Serienmail geht nicht

Serienmail geht nicht
Urmila
Hallo alle zusammen,
habe bereits im Foren nachgeschaut und den Folgenden Makro gefunden, funktioniert aber nicht:
Dim olApp, Mail As Object, objNachricht As Object
Dim iRow As Integer
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
For iRow = 1 To 100
If Cells(iRow, 1).Value > 0 Then
With Nachricht
.To = Cells(iRow, 1)
.Subject = Cells(iRow, 1)
.Body = "HAllo, dies ist ein Test"
.Attachments.Add "C:\" & Cells(iRow, 1).Value & ".txt"
.ReadReceiptRequested = False
.Send
End With
End If
Next iRow

Ziel ist:
In Spalte A stehen die Dateinamen (sind auch so abgelegt) und in Spalte B die Empfänger (das habe ich noch nicht konfiguriert, da ich nicht mal das hinbekommen hab)
Nun gibt es unterschidlich viele Empfänger, und zu jedem auch ein txt File im C:\
Doch die Schleife will nicht, es verschickt zwar die erste Mail, aber danach zeigt er mir ein Fehler in der Zeile : ".To = Cells(iRow, 1)"
Könnt Ihr mir bitte weiterhelfen...
Danke und LG
Urmila

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Serienmail geht nicht
29.07.2009 14:34:27
ede
hallo,
wenn in spalte 2 dein empfänger steht, dann versuchs mal so:
If Cells(iRow, 2).Value > 0 Then
With Nachricht
.To = Cells(iRow, 2)
Gruss
AW: Serienmail geht nicht
29.07.2009 14:40:14
Urmila
Hallo ede,
danke für die schnelle Antowort.
Den Code hab ich, wie gesagt bereits angepasst gehabt, es kommt aber immer die fehlermeldung
Laufzeitfehler -2147352567 (80020009)
Das Element wurde verschoben oder gelöscht

Ich versteh einfach nicht warum er nicht die Schleife einfach abspielt....
Danke und LG
Urmila
Serienmail geht vielleicht doch
29.07.2009 16:08:51
Erich
Hi,
die Nachricht, die du mit CreateItem(0) erzeugst, wird von Outlook versendet
und im Mailordner Sent (o. ä.) abgelegt. Danach kannst du sie nicht mehr ändern.
Du kannst nur eine neue Mail erzeugen - wieder mit CreateItem(0).
Probier mal (ungestestet)

Dim olApp, Mail As Object, objNachricht As Object
Dim iRow As Integer
Set OutApp = CreateObject("Outlook.Application")
For iRow = 1 To 100
If Cells(iRow, 1).Value > 0 Then
Set Nachricht = OutApp.CreateItem(0)  ' nach hier verschoben
With Nachricht
.To = Cells(iRow, 1)
.Subject = Cells(iRow, 1)
.Body = "HAllo, dies ist ein Test"
.Attachments.Add "C:\" & Cells(iRow, 1).Value & ".txt"
.ReadReceiptRequested = False
.Send
End With
End If
Next iRow
Evtl. gibt es Probleme, weil das Makro zu schnell abläuft.
In https://www.herber.de/forum/messages/1092118.html hat Frédéric eine Zeile
Application.Wait Now + TimeValue("0:00:05")
in die Schleife geschrieben. Vielleichts hilfts.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Serienmail geht nicht
29.07.2009 16:10:03
Wolli
Hallo Urmila, ungetestet:

Dim olApp, Mail As Object, objNachricht As Object
Dim iRow As Integer
Set OutApp = CreateObject("Outlook.Application")
For iRow = 1 To 100
If Cells(iRow, 1).Value > 0 Then
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Cells(iRow, 1)
.Subject = Cells(iRow, 1)
.Body = "HAllo, dies ist ein Test"
.Attachments.Add "C:\" & Cells(iRow, 1).Value & ".txt"
.ReadReceiptRequested = False
.Send
End With
End If
Next iRow
Also einfach das Set Nachricht = ... in die Schleife verlagern!
Gruß, Wolli
AW: Serienmail geht nicht
29.07.2009 16:34:44
mumpel
Hallo!
Dieses Problem hatten wir hier erst vor kurzer Zeit. Das Problem ist, dass Attachments.Addcolor> einen String erwartet. Mit Zellinhalten kann Attachments.Addcolor> nichts anfangen. Daher den Zellinhalt vorher in einen String umwandeln.
Gruß, René
Anzeige
@René
30.07.2009 00:28:59
Erich
Hi René,
ist es nicht völlig egal, ob man
oAnhang = "C:\" & Cells(iRow, 1) & ".txt"
.Attachments.Add oAnhang
oder
.Attachments.Add "C:\" & Cells(iRow, 1) & ".txt"
schreibt? Mit "C:\" & Cells(iRow, 1) & ".txt" wird em Add nichts anderes als ein String übergeben.
Dass der String u. a. auch aus einem Zellinhalt entwickelt wurde, spielt IMHO überhaup keine Rolle.
Oder Täusche ich mich da?
"Dieses Problem hatten wir hier erst vor kurzer Zeit." Hast du vielleicht noch den Link dahin?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: @René
30.07.2009 10:21:47
mumpel
Bei mir (Excel 2007) funktioniert das nicht, weshalb auch immer. Daher mache ich einen String daraus und übergebe diesen. Dann kann ich mir wenigstens sicher sein, dass es funktioniert. Außerdem habe ich mich verlesen. Es geht ja hier um den Empfänger (.to). Den Link habe ich gerade nicht zur Hand. Muss mal im Archiv nachsehen.
@René: .To = CStr(Cells(iRow, 1))
30.07.2009 11:28:19
Erich
Hi René,
wenn es um die .To-Eigenschaft geht, sollte auch das immer ausreichen:
.To = CStr(Cells(iRow, 1))
Dann wird ein String übergeben (oder evtl. ein Fehlerwert - wenn in der Zelle ein solcher steht).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: @René: .To = CStr(Cells(iRow, 1))
30.07.2009 11:50:31
mumpel
Bei .to und Co. funktioniert es auch so. Nur eben nicht bei den Anhängen. Mal schauen, was Office 2010 noch für Überraschungen bereithält. Bis jetzt funktioniert zwar alles, aber wer weiss...
DANKE
30.07.2009 10:49:31
Urmila
Hallo
danke an allen#
hab mir gerade den Code von Erich angeschaut, eingefügt und funzt wie gewünscht....
die anderen hab ich dann nicht probiert, werde aber diese noch machen...
Danke an Erich, Wolli und mumpel
LG
Urmila ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige