Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1612to1616
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

Email über Excel verschicken Schleife

Email über Excel verschicken Schleife
09.03.2018 12:11:38
Daniel
Hi,
hab folgendes Problem: der fett markierte Bereich funktioniert nicht, weil ich möchte das in der Empfängerliste alle Namen drinnen stehen die in der Spalte drinnen sind, z.B Hermann.maier@muster.at und wenn nichts mehr in der Spalte steht. soll er aufhören, Werner hat mir vorhin schon bisschen ausgeholfen, aber er hatte nicht den wichtigen Code, der ist dabei, vielen Dank für Eure Hilfe.
LG Daniel
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row
For i = 2 To loLetzte
.To = Cells(i, 5)
Next i
.Subject = "BI: AGA " & bu & " : " & sd & " (AWP Demand ID: " & awp & " / ProblemID: " & op & " )"
.Body = " "
.display 'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
End With

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

Betreff
Datum
Anwender
Anzeige
AW: Email über Excel verschicken Schleife
09.03.2018 12:19:29
Oberschlumpf
Hi Daniel,
schreib anstelle von
loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row

mal
loLetzte = Sheets("name").Cells(Rows.Count, 5).End(xlUp).Row

Für "name" musst du natürlich den Tabellenblattnamen eintragen, wo du die Spalte 5 auslesen willst.
Deine Version bezieht sich mit .Cells(..... auf With objMail, was nicht geht, weil objMail ja kein Tabellenobjekt ist.
Hilft meine Idee denn?
Ciao
Thorsten
AW: Email über Excel verschicken Schleife
09.03.2018 12:23:46
Daniel
leider nicht, ich habs durchgeführt und bekomme folgende Fehlermeldung:
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht:
falls du den ganzen code brauchst oder sonst was, sag mir bescheid :=)
https://www.herber.de/bbs/user/120308.xlsm
und danke für die Hilfe!
LG Daniel
Anzeige
ich bin wieder raus, weil....
09.03.2018 12:37:10
Oberschlumpf
Hi Daniel,
...erst mal danke für die Bsp-Datei.
1. Aber wieso löschst du vorm Absenden der Datei ausgerechnet den Code, der den von dir beschriebenen Fehler 438 verursacht?!
2. Der (noch) fehlerhafte Code bezieht sich mit den Zeilen loLetzte = .Cells(.Rows.Count, 5).End(xlUp).Row und .To = Cells(i, 5) auf Spalte E.
Spalte E in der Bsp-Datei enthält, wenn überhaupt, aber SMS-Einträge. In der Bsp-Datei ist Spalte E = leer!
Auf die Bsp-Datei bezogen müsste sich dein Code auf Spalte 2 (B) beziehen, nicht auf 5, da die Mailadressen in Spalte 2 eingetragen sind.
3. Und dann noch:
Würde denn dein For/Next-Code funktionieren, würden gleich in der Folgezeile mit dem Befehl .To = "navdeep.singh@allianz.at" alle zuvor gesammelten Mailadressen aus Spalte 2 wieder gelöscht werden. Es steht dann nur eine einzige Mailadresse als Empfänger drin.
Sorry, all das ist für mich zu viel "Ja, Nein, Mal sehen, Vielleicht".
(vielleicht hab ich ja etwas gar nicht verstanden)
Aber ich wünsch dir weiter viel Erfolg!
Ciao
Thorsten
Anzeige
Und täglich grüsst die REFERENZIERUNG
09.03.2018 14:22:34
EtoPHG
Hallo Daniel,
Referenzierungen mit einem vorangestellten . (Punkt) können innerhalb eines With-End With Konstrukts stehen und beziehen sich auf das With-Objekt.
Deine With-Objekt ist eine neue E-Mail.
Eine solches Objekt hat ganz sicher keine .Cells Objekte, solche kommen in Ranges vor.
Das kann also nicht funktionieren.
Du musst zuerst ein Worksheet-Objekt referenzieren und dann dieses für die Zellenreferenzierung herbeiziehen, also z.B. so:
    Dim objOutlook As Object
Dim objMail As Object
Dim ws As Worksheet, i As Long
Set ws = ActiveSheet
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
loLetzte = ws.Cells(ws.Rows.Count, 5).End(xlUp).Row
For i = 2 To loLetzte
.to = .to & ws.Cells(i, 5) & ";"
Next i
.Subject = "BI: AGA " & bu & " : " & sd & " (AWP Demand ID: " & awp & _
" / ProblemID: " & op & " )"
.Body = " "
.display    'Erstellt die Email und öffnet diese.
'Der Versand erfolgt anschließend manuell vom User!
End With
Gruess Hansueli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige