Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Notes per VBA an mehrere Empfänger - WIE??

Forumthread: Notes per VBA an mehrere Empfänger - WIE?

Notes per VBA an mehrere Empfänger - WIE?
Christoph
Hallo zusammen.
Ich bekomm es einfach nicht hin eine mail an mehrere Empfänger GLEICHZEITIG zu senden.
Diesen Code verwende ich um 1 mail zu senden und der klappt wunderbar - nur mehrere Empfänger krieg ich einfach nicht hin.
Sub NotesMail
Antwort = Shell("C:\Program Files\Lotus\Notes\notes.exe " & _
"=H:\Notes\data\notes.ini", vbMinimizedFocus)
AppActivate "Microsoft Excel"
strEmpfaenger = "Max.Mustermann@Muster.com"
strBetreff = "Test"
strText = "Email-Text"
'strFile = "" & MerkerPfad & "\Datei.xls"
NotesMailSend strEmpfaenger, strBetreff, strText, strcc, _
strbcc, strFile
Exit Sub
Fehler:
NotesMail
Exit Sub
End Sub
Function NotesMailSend(strEmpfaenger As Variant, strBetreff As Variant, _
strText As Variant, strcc As Variant, strbcc As Variant, strFilename As _
String)
' Dimensionierung der Objektvariablen
Dim objNotes As Object, objNotesDB As Object, objNotesMailDoc As Object
Dim SendItem, NCopyItem, BlindCopyToItem, i As Integer, rtitem
Dim msg As String
' Zuweisung der Objektvariablen
'On Error GoTo ExitF
Set objNotes = GetObject("", "Notes.Notessession")
Set objNotesDB = objNotes.GETDATABASE("", "")
' Öffnen der Standard-Maildatenbank / Erstellen neues Maildokument
Call objNotesDB.OPENMAIL
AppActivate "Microsoft Excel"
Set objNotesMailDoc = objNotesDB.CREATEDOCUMENT
objNotesMailDoc.Form = "Memo"
Call objNotesMailDoc.Save(True, False)
Set SendItem = objNotesMailDoc.APPENDITEMVALUE("SendTo", "")
Set NCopyItem = objNotesMailDoc.APPENDITEMVALUE("CopyTo", "")
Set BlindCopyToItem = objNotesMailDoc.APPENDITEMVALUE("BlindCopyTo", "")
objNotesMailDoc.sendto = strEmpfaenger
objNotesMailDoc.Subject = strBetreff
Set rtitem = objNotesMailDoc.CREATERICHTEXTITEM("Body")
objNotesMailDoc.Body = strText
rtitem.ADDNEWLINE (1)
Call rtitem.EMBEDOBJECT(1454, "", strFilename)
' Mail zustellen
Call objNotesMailDoc.Save(True, False)
Call objNotesMailDoc.send(False)
objNotesMailDoc.RemoveItem ("DeliveredDate")
Call objNotesMailDoc.Save(True, False)
' Nachricht an Benutzer
msg = "Die E-Mail wurde erfolgreich versendet!"
MsgBox msg, vbInformation, "Test"
' Objektvariablen zurücksetzen
Call objNotes.Close
' Leider funktioniert der Quit-Befehl aus irgend einem Grund nicht.
'objNotes.Quit
Set objNotes = Nothing
ExitF:
End Function
Soweit so gut, 1 Empfänger,den ich ganz oben im Modul unter
strEmpfaenger = "Max.Mustermann@Muster.com"
eintrage,funktioniert wunderbar.
Nun möchte ich aber mehrere Empfänger eintragen,damit diese eine email gleichzeitig an alle gelisteten Personen geht.
Einfach bei strEmpfaenger die Adressen durch ein Komma zu trennen geht nicht.Auch habe ich im Netz schon gelesen,man sollte in der "Function" die Empfängerzeile wiefolgt ändern:
Set SendItem = objNotesMailDoc.APPENDITEMVALUE("SendTo",Split(", ""))
Also den Befehl "Split" einbringen...
Aber das funktioniert soooo ohne Weiteres auch nicht.
Habt ihr eine Idee wie ich meinen vorhandenen Code abändern muss und wie die einzelnen Adressen _
dann zu listen sind?
Wäre für Hilfe sehr dankbar - dreh noch durch :))
Gruß Christoph
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Notes per VBA an mehrere Empfänger - WIE?
07.12.2009 15:29:44
Tino
Hallo,
versuche es mal so, habe ich aber nicht getestet.
Dim arEmpfaenger()
'Deine Empfänger oder mittels Schleife ein Array befüllen
arEmpfaenger = Array("Empfänger1", "Empfänger2", "Empfänger3", "Empfänger4")
objNotesMailDoc.sendto = Join(arEmpfaenger, "; ")
'...
Gruß Tino
Anzeige
so geht das nicht
07.12.2009 15:34:23
Rudi
hallo Tino
mehrere Empfänger werden per Array übergeben.
objNotesMailDoc.sendto = arEmpfaenger
wäre in Ordnung.
Gruß
Rudi
kann sein...
07.12.2009 15:37:42
Tino
Hallo,
das dies bei Notes so ist, bei Outlook gehts nicht als Array.
Gruß Tino
AW: Notes per VBA an mehrere Empfänger - WIE?
07.12.2009 15:31:54
Rudi
Hallo,
Split() ist schon OK.
in deinem ersten Code:
strEmpfaenger = "Max.Mustermann@Muster.com;rudi.maintaire@test.de;noch.einer@test.com"
im zweiten:
objNotesMailDoc.sendto = Split(strEmpfaenger,";")
Gruß
Rudi
Anzeige
AW: Notes per VBA an mehrere Empfänger - WIE?
07.12.2009 16:03:57
Christoph
Hey Danke euch!
Rudi - habe deinen Code probiert - funktioniert wunderbar !!!!
Vielen vielen dank!!
AW: Notes per VBA an mehrere Empfänger - WIE?
08.12.2009 22:53:39
walter
Hallo an die Wissenden,
ich werde mir erlauben dies Makro ebenfallls zu testen. Hätte aber nachfolgende Frage: welche Zeilen muß ich auskommentieren, sodaß bei Makroaufruf die Datei in Notes zwar angehängt wird, ich aber die empfänger noch separat einzugeben habe ?
mit Dank Walter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

E-Mails an mehrere Empfänger per VBA in Notes versenden


Schritt-für-Schritt-Anleitung

Um eine E-Mail an mehrere Empfänger gleichzeitig mit Excel VBA in Notes zu senden, kannst du folgende Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Modul erstellen: Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Code einfügen: Verwende den folgenden Code als Basis:
Sub NotesMail()
    Dim strEmpfaenger As String
    Dim strBetreff As String
    Dim strText As String
    Dim objNotes As Object
    Dim objNotesDB As Object
    Dim objNotesMailDoc As Object
    Dim arEmpfaenger() As String

    ' Empfänger definieren
    strEmpfaenger = "Max.Mustermann@Muster.com; rudi.maintaire@test.de; noch.einer@test.com"
    arEmpfaenger = Split(strEmpfaenger, ";")

    strBetreff = "Test"
    strText = "Email-Text"

    ' Notes-Objekt initialisieren
    Set objNotes = GetObject("", "Notes.Notessession")
    Set objNotesDB = objNotes.GETDATABASE("", "")
    Call objNotesDB.OPENMAIL
    Set objNotesMailDoc = objNotesDB.CREATEDOCUMENT

    objNotesMailDoc.Form = "Memo"
    objNotesMailDoc.sendto = Join(arEmpfaenger, "; ")
    objNotesMailDoc.Subject = strBetreff
    objNotesMailDoc.Body = strText

    ' Mail zustellen
    Call objNotesMailDoc.Send(False)
    MsgBox "Die E-Mail wurde erfolgreich versendet!", vbInformation, "Test"

    ' Objekte zurücksetzen
    Set objNotesMailDoc = Nothing
    Set objNotesDB = Nothing
    Set objNotes = Nothing
End Sub
  1. Code anpassen: Ändere die strEmpfaenger-Zeile, um deine gewünschten Empfänger hinzuzufügen.

Häufige Fehler und Lösungen

  • Fehler: E-Mail wird nicht gesendet: Überprüfe, ob der Lotus Notes-Client ordnungsgemäß installiert und konfiguriert ist.
  • Fehler: Ungültige E-Mail-Adressen: Stelle sicher, dass alle E-Mail-Adressen korrekt formatiert sind und durch Semikolons getrennt sind.
  • Fehler: Objektvariablen nicht gesetzt: Achte darauf, dass die Notes-Objekte richtig initialisiert werden.

Alternative Methoden

Wenn du E-Mails an mehrere Empfänger in Outlook senden möchtest, kannst du die SendMail-Methode verwenden. Hier ein Beispiel:

Sub OutlookMail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strEmpfaenger As String

    strEmpfaenger = "empfaenger1@example.com; empfaenger2@example.com"

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
        .To = strEmpfaenger
        .Subject = "Test"
        .Body = "Email-Text"
        .Send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Praktische Beispiele

Ein Beispiel für das Senden von Serien-E-Mails in Outlook könnte so aussehen:

Sub SerienEmailsOutlook()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim i As Integer
    Dim Empfaenger As Variant

    Empfaenger = Array("email1@example.com", "email2@example.com", "email3@example.com")

    Set OutApp = CreateObject("Outlook.Application")

    For i = LBound(Empfaenger) To UBound(Empfaenger)
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Empfaenger(i)
            .Subject = "Test"
            .Body = "Email-Text"
            .Send
        End With
    Next i

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Tipps für Profis

  • Verwende Join und Split, um Empfängerlisten effizient zu verwalten.
  • Baue Fehlerbehandlungen in deinen Code ein, um die Stabilität zu erhöhen.
  • Teste den Code zuerst in einer sicheren Umgebung, um ungewollte E-Mails zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die E-Mail-Vorlage anpassen? Du kannst den Text in den Variablen strBetreff und strText nach deinen Wünschen anpassen.

2. Funktioniert dieser Code auch mit Outlook? Ja, der Code kann leicht angepasst werden, um E-Mails über Outlook zu versenden. Verwende dafür die entsprechenden Outlook-Objekte und -Methoden.

3. Was ist der Unterschied zwischen SendTo und CC? SendTo sendet die E-Mail direkt an die Empfänger, während CC eine Kopie an zusätzliche Empfänger sendet, die nicht die Hauptempfänger sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige