Anzeige
Archiv - Navigation
1584to1588
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

E Mail aus Excel verschicken + Adressen einlesen

E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 10:21:45
Dario
Hallo zusammen,
ich habe folgendes Problem:
Ich möchte gerne dass ich per Excel eine E-Mail verschicken kann und die Adressaten aus einer Tabelle in Excel eingelesen werden.
Hier mein bisheriger Code:
Sub Email()
ThisWorkbook.SaveAs "P:...."
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
While ThisWorkbook.Worrksheets("E-Mail Adressaten").Cells(i, 2)  ""
.To = ThisWorkbook.Worrksheets("E-Mail Adressaten").Cells(i,2)
i = i + 1
Wend
.Subject = "hier der Betreff"
.Body = "Mein Text"
.Attachments.Add "P:...."
.Display
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Das klappt alles bis auf das implementieren der While Schleife.
Jetzt schon mal vielen vielen Dank für eure Hilfe.
Gruß Dario

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 11:19:11
Oberschlumpf
Hi Dario,
leider schreibst du nicht - was genau nicht - funktioniert, bzw. was genau passiert denn beim Ausführen deines Codes; vor allem der While/Wend-Schleife?
Daher hier nur 1 Versuch von mir:
Ander diese Zeile
.To = ThisWorkbook.Worrksheets("E-Mail Adressaten").Cells(i,2)

um in
.To = ThisWorkbook.Worrksheets("E-Mail Adressaten").Cells(i,2) & ";"

anstelle des Semikolons verwende vielleicht auch ein "Komma".
Hilfts denn?
Wenn nicht, zeig uns bitte per Upload die Datei inklusive Code.
Ciao
Thorsten
Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 11:46:58
Dario
Also der Fehlercode der erscheint ist :
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Die Anzahl der E-Mail Adresse variiert täglich und alle Adressaten sollen in eine E-Mail kommen.
Ich denke der Code funktioniert nicht, weil ich nicht mehr auf Excel zugreifen kann? oder Falsch auf Excel zugreife?
Ich weiß nicht wie ich korrekt die Adressaten aus Excel bei .To = einlesen soll.
Vlt versteht ihr mich jetzt besser? :)
Danke euch schon mal :)
Datei kann ich auch aus verschwiegenheitsgründen leider nicht hochladen :/
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 13:34:34
Carsten
Dim olApp     As Object
Dim olOldBody As String
Rem Email erstellen
Set olApp = CreateObject("Outlook.Application")
For i = 1 To 30 Step 1 'Hier kannst ja xlrow up oder so machen
Application.ScreenUpdating = False
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = Sheets("NAME").Cells(i, 2)
.Subject = "Dein Titel"
.Body = "Dein Text"
.Attachments.Add "whatever"
.Send
End With
Next i

Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 11:24:07
Michael
Hallo Dario!
Willst Du eine (!) Email versenden, und die Email-Adressen aus Deinem Blatt gesammelt in das An-Feld schreiben ODER willst Du an jede Email-Adresse aus Deinem Blatt eine eigene (!) Email versenden?
In welchem Bereich stehen Deine Email-Adressen? Annahme: B1:Bx (x = letzte gefüllte Zelle in B:B, variabel), richtig?
LG
Michael
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 11:42:43
Dario
Also der Fehlercode der erscheint ist :
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Die Anzahl der E-Mail Adresse variiert täglich und alle Adressaten sollen in eine E-Mail kommen.
Ich denke der Code funktioniert nicht, weil ich nicht mehr auf Excel zugreifen kann? oder Falsch auf Excel zugreife?
Ich weiß nicht wie ich korrekt die Adressaten aus Excel bei .To = einlesen soll.
Vlt versteht ihr mich jetzt besser? :)
Danke euch schon mal :)
Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
10.10.2017 14:15:23
Michael
Hallo!
Schematisch so, Du musst die Zell-Werte (Email-Adressen) zunächst in einer String-Variablen sammeln, und diese dann dem Mail-Objekt im .To übergeben:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("E-Mail Adressaten")
Dim MyOutApp As Object, MyMessage As Object
Dim c As Range, Adressen$
Wb.SaveAs "Dateiname"
Set MyOutApp = CreateObject("Outlook.Application")
With Ws
For Each c In .Range("B1:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
Adressen = Adressen & c.Text & ";"
Next c
Adressen = Left(Adressen, Len(Adressen) - 1)
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = Adressen
.Subject = "Betreff"
.Body = "Mein Text"
.Attachments.Add "Dateiname"
.Display
End With
End With
Set Wb = Nothing: Set Ws = Nothing
Set MyOutApp = Nothing: Set MyMessage = Nothing
Set c = Nothing
End Sub
Email-Adressen werden hier von B1:Bx gesammelt, wobei x die letzte gefüllte Zelle in B:B darstellt.
LG
Michael
Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
11.10.2017 08:33:03
Dario
so ähnlich hab ich es auch gemacht und es funktioniert.
Hier mein Code:
Sub Email()
ThisWorkbook.SaveAs ".."
Dim i As Integer
Dim k As String
Dim t As String
Dim ii As Integer
Dim kk As String
Dim wb As String
Dim ws As String
i = 4
ii = 4
t = ";"
wb = ".."
ws = "E-Mail Adressaten"
With Workbooks(wb).Worksheets(ws)
k = .Cells(3, 2)
While .Cells(i, 2)  ""
k = k & t & .Cells(i, 2)
i = i + 1
Wend
kk = .Cells(3, 3)
While .Cells(ii, 3)  ""
kk = kk & t & .Cells(ii, 3)
ii = ii + 1
Wend
End With
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = k                                                                 'Hier kommt der Empfä _
nger
.cc = kk                                                                   'Hier die Adressen  _
fürs cc
.Subject = "hier der Betreff"                                              'Hier der Betreff
.Body = "Mein Text"                                                        'Hier dein E-Mail  _
Text rein
.Display
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Jetzt hab ich leider anscheinend noch ein Problem.
Mir wurde gesagt wenn man bei dem Outlookfenster, dass sich öffnet auf senden klickt, dass die E Mail nur im Ordner Absenden landet.
Weißt du zufällig warum das so ist oder was da helfen könnte?
Vielen dank aber schon mal für deinen Rat. :)
Anzeige
AW: E Mail aus Excel verschicken + Adressen einlesen
11.10.2017 09:15:18
Carsten
Nimm anstatt .Display
.Send

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige