Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Serienmail - generell CC - Empfänger ergänzen

Forumthread: Serienmail - generell CC - Empfänger ergänzen

Serienmail - generell CC - Empfänger ergänzen
04.03.2009 21:18:10
Stefan
Hallo Excel-Freunde
ich erstelle mittels eines VBA-Codes ein Serienmail an verschiedenen Empfänger
(der Ursprungscode kommt von Ramses :) )
Dabei steht in Spalte jeweils ab Zeile 2
A = email soll verschickt werden x = ja Leer = Nicht verschicken
B = email-Adresse des Empfängers
C = Betreff-Text individuell
D = Mail-Text individuell
E = Protokollierung Wann von Wem die Mail verschickt wurde
F = Leer-Spalte
G = Datei-Link als Anlage
Was ist erreichen möchte
jedes Mail soll generell an eine bestimme email-Adresse als CC geschickt werden
Wie muss ich den Code anpassen, daß bei jeder Mail eine bestimmte email-Adresse ein CC erhält
mein Versuch mit
.cc = "xxx@yyy.de" als Mailempfänger nach der zeile
___ .To = Cells(i, 2) '"irgendwer@irgendein-provider.de" SPALTE B
funktioniert leider nicht
Kann mir jemand weiterhelfen ?
Freu mich auf eine Antwort
Besten Gruß
Stefan
hier der Code:

Sub Excel_Serienmail_mit_mehreren_Anlagen_mit_Fehlermeldung_via_Outlook_Senden()
' von RAMSES  14.01.2003
'jeweils ab Zeile 2
'Spalte A = x oder leer  (x wenn email verschickt werden soll
'Spalte B = Empfängeremail-Adresse
'Spalte C = Betrefftext je Empfänger
'Spalte D = Mailtext je Empfänger
'Spalte E = nach Versand Eintrag von Datum/Uhrzeit NT-Username und Computername
'Spalte F = Leer
'Spalte G = Verzeichnis+Dateiname  (Max 10 Anlagen)
'Variablendefinition
Dim fs As Object, F As Object
Dim OutApp As Object, mail As Object
Dim i As Integer, y As Integer, Msg As Integer
Dim Nachricht As Variant
Dim AWS As String
Dim AnzEmpfänger As Integer
'Variablen füllen
'Filesystemobjekt erstellen
Set fs = CreateObject("Scripting.FileSystemObject")
'Hier die Anzahl Empfänger definieren
AnzEmpfänger = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'1. Fehlerprüfung
'Prüfen ob alle Inhalte vorhanden sind
'Wenn nicht wird das Makro abgebrochen
For i = 2 To AnzEmpfänger
If Cells(i, 2) = "" Then
Msg = MsgBox("Unvollständige Angaben beim Empfänger in Zeile " & i, vbCritical +  _
vbOKOnly, "Abbruch")
Exit Sub
End If
Next i
'2. Fehlerprüfung
'Mit dem FilesystemObjekt wird zuerst die Existenz der Dateien geprüft. '
'Wenn eine nicht existiert wird das Makro abgebrochen
'Die Links auf die Anlagen liegen im Bereich G2 : G11
For y = 2 To ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row
'Wenn eine Zelle leer ist, wird aus der Schleife ausgestiegen
'ohne weitere Fehlerprüfung
If Cells(y, 7) = "" Then Exit For
If fs.fileexists(Cells(y, 7)) = False Then
Msg = MsgBox("Die Datei: " & Cells(y, 7) & " in G" & y & " exitstiert nicht !" &  _
vbCrLf & "Der Sendevorgang an; " & Cells(i, 2) & " wird abgebrochen!", vbCritical + vbOKOnly, "Dateifehler")
Exit Sub
End If
Next y
'Sendevorgang einleiten
For i = 2 To AnzEmpfänger
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
On Error GoTo next_email
'Hier wird die zelle i in Spalte A auf den Wert X geprüft
'UCASE deshalb um Schreibfehler von Gross und klein zu vermeiden
If UCase(Cells(i, 1).Value) = "X" Then
'Trifft die Bedingung X zu wird der Mailversand eingeleitet
With Nachricht
.To = Cells(i, 2)       '"irgendwer@irgendein-provider.de"      SPALTE B
.Subject = Cells(i, 3)  '"Betreffzeile Header"                  SPALTE C
.Body = Cells(i, 4)     '"Sendetext"                            SPALTE D
'For y = 2 To 11
For y = 2 To ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row
AWS = Cells(y, 7)
'Wenn die Zelle / Variable leer ist wird diese Schleife abgebrochen
If AWS = "" Then Exit For
.Attachments.Add AWS
Next y
'Hier wird die Mail zuerst angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
'Variablen zurücksetzen
Set OutApp = Nothing        'CreateObject("Outlook.Application")
Set Nachricht = Nothing     'OutApp.CreateItem(0)
Application.Wait (Now + TimeValue("0:00:01"))
'versanddatum /-uhrzeit /-userid und computername in spalte e eintragen
Worksheets(ActiveSheet.Name).Cells(i, 5).Value = Date & " / " & Time & _
" / " & Environ("username") & " " & Environ("computername")
next_email:
End If
'Bedingung abgeschlossen
Next i
End Sub


Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 22:02:51
Josef
Hallo Stefan,
warum soll das niht funktionieren?
With Nachricht
  .To = Cells(i, 2) '"irgendwer@irgendein-provider.de" SPALTE B
  .CC = "try.to@guess.it"
  .Subject = Cells(i, 3) '"Betreffzeile Header" SPALTE C
  .Body = Cells(i, 4) '"Sendetext" SPALTE D
  'For y = 2 To 11
  For y = 2 To ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row
    AWS = Cells(y, 7)
    'Wenn die Zelle / Variable leer ist wird diese Schleife abgebrochen
    If AWS = "" Then Exit For
    .Attachments.Add AWS
  Next y
  'Hier wird die Mail zuerst angezeigt
  '.Display
  'Hier wird die Mail gleich in den Postausgang gelegt
  .Send
End With

Gruß Sepp

Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 22:26:50
Stefan
Hey Josef
genau das hab ich probiert
nur kommt das Mail
wenn ich als mail adresse in Spalte B meine Adresse eingebe
und zusätzlich als .cc erfasse
nicht an
?
Versteh das nicht
Gruss Stefan
AW: Excel-Datei als Beispiel
04.03.2009 22:31:57
Josef
Hallo Stefan,
zeig es doch mal genau so wie du es gemacht hast, das wird sonst ein Ratespiel.
Gruß Sepp

Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 22:41:16
Stefan
Hey Josef
Ratespiel muss ein Ende haben ;)
https://www.herber.de/bbs/user/59989.xls
.cc als Beispiel eingefügt
Adressen jeweils anpassen ! ;)
Gruss und Dank für eure Hilfe
Stefan
AW: Excel-Datei als Beispiel
04.03.2009 22:49:19
Josef
Hallo Stefan,
kann es sein das du die "" vergssenhast?
.CC = "xxx@yyy.de" 'GRUNDSÄTZLICHE CC für jede MAIL

Gruß Sepp

Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 22:59:07
Stefan
Hey Sepp
ich "denke" ich hab genau das gemacht - inkl der " "
ich werde das morgen am Arbeitsplatz nochmal probieren
Wer weiss - ich ob was falsch erfasst hab
Dank dir vorab für die Hilfe
Werde morgen ein Feedback geben :)
Besten Gruß
Stefan
AW: Excel-Datei als Beispiel
04.03.2009 23:03:37
Ramses
Hallo
Also das in der Datei genannte "Mail.CC" kann nicht funktioieren.
Ich habe das gerade getestet, ... und es tut wenn man die Adresse korrekt einträgt
Gruss Rainer
Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 23:07:32
Stefan
Hey Rainer
Dank Dir sehr
ich werd es morgen am Arbeitsplatz "probieren"
und geb dann ein Feedback
... es ist spät heute und ich bin seit 5 Uhr wach ;)
bis Morgen --- hoffe OK !?! :)
besten Gruß
Stefan
AW: Excel-Datei als Beispiel
05.03.2009 19:03:24
Stefan
Hallo Rainer
hat perfekt funktioniert :)
Dank für Deine Hilfe
Besten Gruß
Stefan
Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 23:04:38
Josef
Hallo nochmal,
also bei mir funktioniert es tadellos, wie bei einem Code von Ramses auch nicht anders zu erwarten.
Gruß Sepp

AW: Excel-Datei als Beispiel
05.03.2009 19:10:16
Stefan
Hallo Sepp
hat jetzt auch einwandfrei funktioniert.
Es gab das Problem, wenn ich z.b. meine email-adresse in dem Excel-sheet
erfasst habe und GLEICHZEITIG im vba-code unter .cc
Dann wurde das Mail nur 1x verschickt.
Hatte das so "doppelt" erfasst, um den Code zu testen.
Im "Life" war das doppelte nicht erforderlich
Dank Dir und Ramses für Eure Hilfe
Besten Gruß
Stefan
Anzeige
AW: Excel-Datei als Beispiel
04.03.2009 22:06:45
Ramses
Hallo
Warum sollte
.cc = "Demo@xxx.de"
nicht funktionieren ?
WAS funktioniert denn nicht ?
Gruss Rainer
AW: Excel-Datei als Beispiel
04.03.2009 22:30:09
Stefan
Hey Ramses
:) ... die Basis war DEIN Code
.cc ...
hat leider nicht funktioniert
Wenn ich in Spalte B meine email-Adresse erfasse
und als .cc zusätzlich dieselbe Adresse nochmals
kommt das Mail nur 1x an
mmmhhh ...
Gruss Stefan
Anzeige
2mal ist nur 1mal
05.03.2009 10:15:31
Renee
Hallo Stefan,
Wenn du die gleiche E-Mail Adresse in .To und .CC angibst, wirst du das Mail nur eimal bekommen. Das ist so. Alle mir bekannten E-Mail Systeme optimieren die Empfänger auf Eindeutigkeit.
GreetZ Renée
AW: 2mal ist nur 1mal
05.03.2009 19:18:39
Stefan
Hey Renee
ich hab Deine Antwort erst jetzt gerade gelesen :O
GENAU DAS ist es gewesen - hatte zum Test die email-Adresse doppelt erfasst !
Na, jetzt klappt es ja wunderbar
DAnk auch Dir sehr ;)
besten Gruß
STefan
Anzeige
;
Anzeige

Infobox / Tutorial

So ergänzt du CC-Empfänger in Serienmails mit Excel und Outlook


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Excel-Datei: Erstelle eine Excel-Datei, in der du folgende Spalten anlegst:

    • Spalte A: x (wenn die E-Mail verschickt werden soll) oder leer
    • Spalte B: E-Mail-Adresse des Empfängers
    • Spalte C: Individueller Betreff
    • Spalte D: Individueller Mail-Text
    • Spalte E: Protokollierung der Versanddaten
    • Spalte G: Datei-Link für Anhänge
  2. VBA-Code anpassen: Verwende den folgenden VBA-Code, um die Serienmails mit CC zu versenden:

Sub Excel_Serienmail_mit_mehreren_Anlagen_mit_Fehlermeldung_via_Outlook_Senden()
    Dim OutApp As Object, Nachricht As Object
    Dim i As Integer, AnzEmpfänger As Integer
    AnzEmpfänger = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To AnzEmpfänger
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)

        If UCase(Cells(i, 1).Value) = "X" Then
            With Nachricht
                .To = Cells(i, 2)  ' E-Mail-Adresse aus Spalte B
                .CC = "cc@example.com"  ' Hier die CC-Adresse eintragen
                .Subject = Cells(i, 3)  ' Betreff aus Spalte C
                .Body = Cells(i, 4)     ' Mailtext aus Spalte D
                .Send  ' Mail sofort senden
            End With
        End If
    Next i
End Sub
  1. E-Mail-Versand starten: Führe den VBA-Code aus, um die E-Mails zu versenden. Stelle sicher, dass Outlook geöffnet ist.

Häufige Fehler und Lösungen

  • Mail kommt nicht an: Wenn du die gleiche E-Mail-Adresse für .To und .CC verwendest, wird die E-Mail möglicherweise nur einmal zugestellt. Achte darauf, unterschiedliche E-Mail-Adressen zu verwenden.

  • CC-Adresse wird nicht erkannt: Überprüfe, ob du die CC-Adresse in Anführungszeichen setzt. Beispiel: .CC = "xxx@yyy.de".

  • Fehlermeldungen beim Versenden: Stelle sicher, dass alle erforderlichen Felder in der Excel-Datei ausgefüllt sind und dass die E-Mail-Adressen korrekt sind.


Alternative Methoden

  • Mail Merge in Word: Du kannst auch Word verwenden, um Serienmails mit CC zu versenden. Hierbei wird die Excel-Datei als Datenquelle genutzt. Du kannst den CC-Empfänger direkt im Word-Dokument definieren.

  • Outlook-Regeln: Eine andere Möglichkeit ist, Outlook-Regeln zu nutzen, um bei eingehenden E-Mails automatisch CC-Empfänger hinzuzufügen.


Praktische Beispiele

  1. Einfaches Beispiel für Serienmail:

    • Stelle sicher, dass in Spalte A ein x steht, damit die E-Mail versendet wird.
    • Füge in Spalte B die E-Mail-Adresse des Empfängers ein und in Spalte C den entsprechenden Betreff.
  2. Serienbrief mit Outlook: Verwende die oben genannten Schritte, um einen Serienbrief zu erstellen, der an mehrere Empfänger verschickt wird, dabei kann jeder Empfänger eine individuelle Nachricht erhalten.


Tipps für Profis

  • VBA anpassen: Passe den VBA-Code an, um dynamisch CC-Adressen von einer anderen Spalte in der Excel-Datei zu beziehen. Dies ermöglicht es dir, unterschiedliche CC-Empfänger je nach Empfänger auszuwählen.

  • Protokollierung: Implementiere eine Protokollierungsfunktion, um den Versandstatus jeder E-Mail in einer separaten Spalte zu speichern.


FAQ: Häufige Fragen

1. Warum funktioniert die CC-Adresse nicht?
Überprüfe, ob die Adresse korrekt eingegeben wurde und in Anführungszeichen steht.

2. Kann ich mehrere CC-Empfänger hinzufügen?
Ja, du kannst mehrere Adressen durch ein Komma trennen, z.B. .CC = "xx@yy.de, aa@bb.de".

3. Was passiert, wenn die E-Mail-Adresse in Spalte B leer ist?
Das Makro wird abgebrochen und zeigt eine Fehlermeldung an. Stelle sicher, dass alle Empfänger korrekt eingegeben sind.

4. Welche Excel-Version wird benötigt?
Die Anleitung funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen (z.B. Excel 2016 und später).

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