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

VBA Versand von Mails über Excel

VBA Versand von Mails über Excel
12.05.2022 19:42:40
Mails
Hallo,
ich habe eine Datei in der in folgendes steht:
Spalte A ca. 200 Namen von Mitarbeiter
Spalte B stehen die dazugehörigen Mailadressen
Spalte C steht der jeweilige Betreff
Spalte D stehen Anweisungen.
Meine Frage hierzu ist, kann ich über VBA mit einem Knopfdruck an alle Mailadresse die Anweisungen mit dem dazugehörigen Betreff senden ?
Wenn ja, wie lautet hierzu der VBA Code ?
Vielen Dank für eure Bemühungen.
Gruß Thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Versand von Mails über Excel
12.05.2022 20:12:13
Mails
Hallo Thomas,
ja, es würde mit VBA gehen, aber ich würde es mit Word-Serienbriefe machen (ehrlich gesagt würde ich sogar als VBA-Profi für diese Art von Aufgabe zweimal überlegen, bevor ich es mit VBA angehe).
Die Excelliste ist dabei die Inhalt- und Steuerungsquelle (Datenbank). Da führt dich den Serienbrief-Assistent durch. Notfalls brauchst Du ein einziges Video-Tutorial und Du weisst alles.
Darüber musst Du das Aussenwirkungsrisiko beachten: geht was schief, bekommen 200 Leute etwas davon mit! Hast Du VBA soweit im Griff, dass Du dir das zutraust? Wenn ich dein "VBA nein" richtig interpretiere: bei jeder Komma, die in VBA nicht passt, bist Du auf Helfer angewiesen (wir helfen gern, das ist nicht die Frage). Und diese Frage/Antwort-Pingpong kann schon sehr viel Zeit kosten.
Solltest Du VBA-lernen wollen, sei willkommen! Wir sind bei Dir. Aber fange mit einfacheren, weniger gefährlichen Aufgaben an.
VG
Yal
Anzeige
AW: VBA Versand von Mails über Excel
15.05.2022 09:26:46
Mails
Hallo nochmals,
Rückfrage zu einem code zu der angegebenen Fragestellung:
Spalte A stehe Mailadressen
Spalte B Mailadressen als Kopieempfänger
Spalte C der Betreff der Mail
Spalte D der Inhalt der Mail
Spalte E der Anhang der Mail
und Spalte F der Status
Ich habe hierzu folgenden Code:

Sub Versand_Avis()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Avis")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
For i = 2 To last_row
Set msg = OA.createitem()
msg.To = sh.Range("A" & i).Value
msg.cc = sh.Range("B" & i).Value
msg.Subject = sh.Range("c" & i).Value
msg.body = sh.Range("D" & i).Value
If sh.Range("E" & i).Value  "" Then
msg.attachments.Add sh.Range("E" & i).Value
End If
msg.send
sh.Range("F" & i).Value = "abgesendet"
Next i
MsgBox "Mails erfolgreich versendet"
End Sub
Als Meldung erhalte ich:
Laufzeitfehler; Argument isst optional
Was ist an dem code falsch bzw. was muss ich abändern, damit mein vorhaben funktioniert ?
Danke für eure Hilfe.
Gruß Thomas
Anzeige
AW: VBA Versand von Mails über Excel
15.05.2022 19:21:49
Mails
Hallo nochmals,
Rückfrage zu einem code zu der angegebenen Fragestellung:
Spalte A stehe Mailadressen
Spalte B Mailadressen als Kopieempfänger
Spalte C der Betreff der Mail
Spalte D der Inhalt der Mail
Spalte E der Anhang der Mail
und Spalte F der Status
Ich habe hierzu folgenden Code:

Sub Versand_Avis()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Avis")
Dim i As Integer
Dim OA As Object
Dim msg As Object
Set OA = CreateObject("outlook.application")
Dim last_row As Integer
last_row = Application.CountA(sh.Range("A:A"))
For i = 2 To last_row
Set msg = OA.createitem()
msg.To = sh.Range("A" & i).Value
msg.cc = sh.Range("B" & i).Value
msg.Subject = sh.Range("c" & i).Value
msg.body = sh.Range("D" & i).Value
If sh.Range("E" & i).Value  "" Then
msg.attachments.Add sh.Range("E" & i).Value
End If
msg.send
sh.Range("F" & i).Value = "abgesendet"
Next i
MsgBox "Mails erfolgreich versendet"
End Sub
Als Meldung erhalte ich:
Laufzeitfehler; Argument isst optional
Was ist an dem code falsch bzw. was muss ich abändern, damit mein vorhaben funktioniert ?
Danke für eure Hilfe.
Gruß Thomas
Anzeige
AW: VBA Versand von Mails über Excel
16.05.2022 07:36:49
Mails
Moin Thomas,
du bist ja nich das erste Mal hier.
Da hätte auch dir schon auffallen können, dass es viel einfacher ist, mit ner Bsp-Datei des Fragenden eine Lösung zu erarbeiten als eben...ohne Bsp-Datei mit Bsp-Daten in den, im gezeigten Code, verwendeten Zellen.
Ach ja, ein Grund für das nicht mehr Erhalten weiterer Antworten könnte sein, dass dein Feedback zu Yal's Hinweisen noch immer fehlt...
Ciao
Thorsten
AW: VBA Versand von Mails über Excel
16.05.2022 10:47:26
Mails
Hallo Thomas,
dass ich den Startcode nicht selber aufbauen muss, ist sehr gut.
Ich habe ein paar Abkürzung vorgenommen, insbesondere durch die Verwendung von Object-Variable: Z ist immer die Zelle in Spalte A der jewilige betrachtete Zeile. Es enthält alle umliegende Information wie Blattname, Zeilenummer, Spaltenummer, usw.
Wichtig ist die Anbindung an der Bibliothek (Library). So bekommst schon schon während das Programmieren viel mehr Korrektur (IntelliSense).
Folgendes ist dementsprechend nichts anderes als dein eigenen Code.

Sub Versand_Avis()
'unter Anbindung ("Extras","Verweise...) von "Microsoft Outlook 16.0 Object Library"
Dim Z As Range
Dim OA As Outlook.Namespace
Dim msg As Outlook.MailItem
Set OA = Outlook.GetNamespace("MAPI")
For Each Z In ThisWorkbook.Sheets("Avis").Range(Range("A2"), Range("A9999").End(xlUp))
Set msg = CreateItem(olMailItem)
msg.To = Z.Range("A1").Value ' relative Adressierung: "A1" ist oberste/linkste Zelle von Z.
msg.cc = Z.Range("B1").Value ' "B1" ist erste Zelle recht von oberste/linkste Zelle von Z.
msg.Subject = Z.Range("C1").Value
msg.body = Z.Range("D1").Value
If Z.Range("E1").Value Then msg.attachments.Add Z.Range("E1").Value
msg.send
Z.Range("E1").Value = "abgesendet"
Next
MsgBox "Mails erfolgreich versendet"
End Sub
Da der Code bei mir funktioniert, kann dich leider an der Stelle kaum weiterhelfen. Das Debugging (Schritt-Modus, offene lokale Fenster, Überwachungsausdrücke, usw..) musst Du selber in der Hand nehmen.
Wichtig ist die Anbindung an der Bibliothek (habe ich schon mal erwähnt?).
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige