Office: (Office 2010) Mail aus Excel heraus mit Verteilerliste

Helfe beim Thema Mail aus Excel heraus mit Verteilerliste in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Schönen Guten Morgen in die Runde, ich hoffe, mir kann hier wieder mal geholfen werden. Ich möchte eine E-Mail mit mehreren Empfängern mit... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von hauenkrieger, 3. November 2015.

  1. Mail aus Excel heraus mit Verteilerliste


    Schönen Guten Morgen in die Runde,

    ich hoffe, mir kann hier wieder mal geholfen werden.

    Ich möchte eine E-Mail mit mehreren Empfängern mit unterschiedlichem Betreff aus Excel via Makro versenden.

    Zu meiner Situation:
    Habe eine Tabelle mit Namen (Spalte A), E-Mail-Adressen (Spalte B)und eine Betreffzeile(Spalte C), die über mehrere Checkbox gesteuert werden. Jeder Adressat hat eine eigene Checkbox.
    Über ein Makro soll eine Email(Outlook) erstellt werden mit den ausgewählten Adressaten(angewählte Checkboxen)
    Der Inhalt soll bei allen Emails identisch sein. Der Pfad/Dateiname als Hyperlink für den Empfänger.

    Würde mich über Eure Hilfe freuen.
    Leider hat mir die Suche im Netz nicht weitergeholfen, da ich das was ich gefunden habe nicht weiterverwenden konnte.

    Gruß
    Hauenkrieger

    :)
     
    hauenkrieger, 3. November 2015
    #1
  2. Hallo Hauenkrieger,

    hier ein Beispiel, wie ich es mache. Unterschied zu deiner Fragestellung ist dabei, dass ich nur eine Mail versende. Du möchtest aber pro Empfänger eine Mail versenden, die sich in der Betreffzeile unterscheiden. Sollte aber auch kein Problem sein, das entsprechend umzubauen, sofern bei dir etwas Programmierverständnis vorhanden ist.

    PHP:
             Sub Versendebericht_mit_Outlook_versenden()

    'zuerst prüfen, ob Outlook auf dem Rechner installiert ist. --------------------------------

    Dim olapp As Object

    If wk_meldungen = "JA" Then
    a = MsgBox("Routine: Versendebericht_mit_Outlook_versenden                         ")
    End If

    On Error Resume Next
    Set olapp = GetObject(, "Outlook.Application")
    If olapp Is Nothing Then _
    Set olapp = CreateObject("Outlook.Application")
    On Error GoTo 0

    If olapp Is Nothing Then
    MsgBox "Outlook ist nicht installiert. Automaische Versendung somit nicht möglich", vbOKOnly + vbExclamation, "Achtung"
    Exit Sub
    End If
    Set olapp = Nothing

    Dim Nachricht As Object, OutlookApplication As Object
    Set OutlookApplication = CreateObject("Outlook.Application")

    If P_mail_attachments = "" Then
    P_mail_attachments = ActiveWorkbook.Path & "\" & _
    Sheets("Customizing").Range("Custm_Dateiname_Versendung").Value & ".xlsx"
    Call vorbereiten_mailversand
    End If

    Set Nachricht = OutlookApplication.CreateItem(0)

    a = MsgBox("  >>> Soll die Mail direkt versendet werden?  <<<", vbYesNo + vbDefaultButton2, "Mail versenden")
    If a = vbNo Then
    With Nachricht
    .SentOnBehalfOfName = P_Mail_from
    .To = P_Mail_to
    .CC = P_mail_cc
    .BCC = p_mail_bcc
    .Subject = p_mail_subject
    .attachments.Add P_mail_attachments
    .htmlBody = p_mail_body
    .Display
    VBA.SendKeys "^{END}", True                '
    Cursor ans Ende der EMail setzen
    strSignatur 
    "sigantur_1"                      'Name der gespeicherten Signatur
    .getinspector.CommandBars.item("Insert").Controls("Signatur").Controls(strSignatur). _
    Execute
    End With
    Else
    With Nachricht
    .SentOnBehalfOfName = P_Mail_from
    .To = P_Mail_to
    .CC = P_mail_cc
    .BCC = p_mail_bcc
    .Subject = p_mail_subject
    .attachments.Add P_mail_attachments
    .Body = p_mail_body
    .Display
    .Send
    End With
    End If

    Set OutlookApplication = Nothing
    Set Nachricht = Nothing

    End Sub

    Sub vorbereiten_mailversand()

    If wk_meldungen = "JA" Then
    a = MsgBox("Routine: Vorbereiten_mailversand                               ")
    End If

    Dim l_cell As String
    Dim l_receiver As String
    Dim l_row  As Integer
    Dim l_first As String
    Dim L_to_cc_bcc As String
    Dim L_von As String
    Dim l_bis As String
    Dim x As Integer

    p_mail_subject = Sheets("Customizing").Range("Custm_mail_betreff")

    P_Mail_to = ""
    P_mail_cc = ""
    p_mail_bcc = ""
    l_row = 4

    For x = 1 To 99
    l_row = l_row + 1
    L_to_cc_bcc = "Q" & l_row
    l_receiver = "S" & l_row
    L_von = "T" & l_row
    l_bis = "U" & l_row


    '
    Empfänger ermitteln

    If Sheets("Brief").Range(L_to_cc_bcc).Value "..ENDE" Then
    Exit For
    End If

    'Datumsprüfung - Der Empfänger soll die Mail nicht mehr erhalten
    If Sheets("Brief").Range(L_von).Value <> "" Then
    If Sheets("Brief").Range(L_von).Value > Sheets("Wertung").Range("W2").Value Then
    GoTo ende_for_x
    End If
    End If

    '
    Datumsprüfung Der Empfänger soll die Mail noch nicht mehr erhalten
    If Sheets("Brief").Range(l_bis).Value <> "" Then
    If Sheets("Brief").Range(l_bis).Value Sheets("Wertung").Range("W2").Value Then
    GoTo ende_for_x
    End 
    If
    End If

    If 
    Sheets("Brief").Range(l_receiver).Value "" Then
    GoTo ende_for_x
    End 
    If

    If 
    Sheets("Brief").Range(L_to_cc_bcc).Value "" Or _
    Sheets
    ("Brief").Range(L_to_cc_bcc).Value "to" Then
    If P_Mail_to <> "" Then
    P_Mail_to 
    P_Mail_to "; "
    End If
    P_Mail_to P_Mail_to Sheets("Brief").Range(l_receiver).Value
    GoTo ende_for_x
    End 
    If

    If 
    Sheets("Brief").Range(L_to_cc_bcc).Value "cc" Then
    If P_mail_cc <> "" Then
    P_mail_cc 
    P_mail_cc "; "
    End If
    P_mail_cc P_mail_cc Sheets("Brief").Range(l_receiver).Value
    GoTo ende_for_x
    End 
    If

    If 
    Sheets("Brief").Range(L_to_cc_bcc).Value "bcc" Then
    If p_mail_bcc <> "" Then
    p_mail_bcc 
    P_mail_cc "; "
    End If
    p_mail_bcc p_mail_bcc Sheets("Brief").Range(l_receiver).Value
    GoTo ende_for_x
    End 
    If

    ende_for_x:
    Next x

    Body 
    Textkörper Zusammensetzen

    p_mail_body 
    ""
    l_row 26

    For Iterations 1 To 150
    l_row 
    l_row 1
    l_cell 
    "A" l_row
    If Sheets("Brief").Range(l_cell).Value "..Ende" Then
    Exit For
    End If
    If 
    Sheets("Brief").Range(l_cell).Value "..Termine" Then
    Call versendebericht_termine_einfuegen
    GoTo end_next
    End 
    If
    If 
    Sheets("Brief").Range(l_cell).Value <> "..Nothing" Then
    If Sheets("Brief").Range(l_cell).Value "..Leerzeile" Then
    p_mail_body 
    p_mail_body vbCrLf
    Else
    If 
    Sheets("Brief").Range(l_cell).Value "" Then
    p_mail_body 
    p_mail_body vbCrLf vbCrLf
    Else
    p_mail_body p_mail_body Sheets("Brief").Range(l_cell).Value
    End 
    If
    End If
    End If
    end_next:
    Next Iterations

    End Sub
     
  3. Mail aus Excel heraus mit Verteilerliste

    Hallo WS-53,
    im Grunde brauche ich nicht jedem eine EMail schicken! Deine Lösung hört sich schon sehr gut an!
    Wäre es möglich mir eine Beispiel-Datei mit deiner Lösung zu geben?
    Bin nicht der all zu große Crack!

    Gruß
    Hauenkrieger
     
    hauenkrieger, 5. November 2015
    #4
  4. Hallo Hauenkrieger,

    das wird vermutlich nicht so einfach werden. Bei mir handelt es sich um die Ergebnisse eines wöchentlichen Spielabends, die über ein Jahr hinweg gesammelt werden und ein Auszug davon wird Woche für Woche an alle Mitspieler versendet. Ich habe mir dabei auch die einzelnen Brocken ergoogelt und das ganze dann nach meinen Vorstellungen umgestaltet. War für mich eine gewisse Tüftelarbeit, läuft nun aber seit ca. 18 Monaten ohne Probleme.

    Das Original enthält mehr als 20 Tabellenblätter und hat ein Volumen von rund 6MB, lässt sich hier also nicht hochladen. Selbst wenn ich alle Ergebnisse ab dem 2. Spielabend lösche und auch Tabellenblätter lösche, die dafür nicht benötigt werden, ist es für den Upload immer noch zu viel.

    Heute nicht mehr, aber Morgen Abend kann ich ja mal versuchen, ob sich das Ganze soweit reduzieren lässt, damit ich es hochladen kann. Bleibt aber dann immer noch, dass du es an deine Bedürfnisse anpassen musst.
     
  5. Guten Morgen WS-53,
    wenn du das machen könntest, trotz des Aufwandes, wäre das genial.
    Was den zeitlichen Aspekt angeht, stehe ich unter keinerlei Druck. Deswegen habe ich alle Zeit der Welt!

    Vielen Dank im Voraus

    Gruß
    Hauenkrieger
     
    hauenkrieger, 5. November 2015
    #6
  6. Hallo Hauenkrieger,

    ich habe es hinbekommen, die große 7MB Datei auf ein funktionierendes Demo mit 115KB zu reduzieren.

    Im Tabellenblatt "Customizing" ist die Taste "Versendebericht erstellen". Das Ta bellenblatt "Brief" enthält die Empfängerliste und den Brieftext. Der Brieftext wird dabei tlws. dynamisch generiert, da hier immer einige Informationen des letzten Spielabends einfließen.

    Für Formatierungen verwende ich HTML-Steuercodes.

    Die Namen und E-mail Adressen sind allerdings nur noch Dummies.

    Musst schauen, ob du damit klar kommst.
     
  7. Mail aus Excel heraus mit Verteilerliste

    Guten Morgen erstmal,

    Dank dir WS-53 für die Tabelle. Ich kann da nur sagen, Respekt. Leider ist mir das um einiges zu hoch. Ich bekomme da noch nicht mal nen Durchblick, liegt aber definitiv an mir. Bin halt nur ein Laie.

    Gibt es wohl noch ne andere Idee, habe mir den Lösungsansatz von R J auch angeschaut. Danke dir R J dafür, habe dich nicht vergessen. Leider geht hier die Email an eine feste Adresse.

    Ich würde nur gern mehrere Adressaten anschreiben.
    Nochmal zu meinem Anliegen.

    Habe eine Liste mit Namen und Email-Adressen! In einer nächsten Spalte wird über eine Checkboxliste(mehrere Checkboxen untereinander) gesteuert, wer diese Email erhalten soll! (Wahr/falsch)

    Gibt es hier evtl eine einfache Lösung für mein Problem?
    Wäre Euch wirklich dankbar!
     
    hauenkrieger, 8. November 2015
    #8
  8. Hallo hauenkrieger!
    Wenn Excel VBA zu kompliziert ist, versuche AHK (AutoHotKey).
    Dann musst Du nur mit SVERWEIS in Excel Empfänger und Text auswählen und dann das AHK Makro starten.

    Viel Erfolg
    Pit
     
  9. Guten MOrgen,

    konnte mein Problem lösen.

    Vielen Dank für Eure Hilfe.
    Ich hoffe ich kann Euch auch irgendwann mal helfen.

    Gruß
    Hauenkrieger
     
    hauenkrieger, 9. November 2015
    #10
  10. Hallo Hauenkrieger,

    schön, dass du dein Problem lösen konntest. Auch schön, dass du dies hier kundgetan hast. Aber noch ein klein wenig schöner wäre es gewesen, wenn du mit ein paar wenigen Worten erläutert hättest, wie deine Lösung aussieht.

    Denn nur so wir die Grundlage geschaffen, dass auch andere davon partizipieren können.
     
  11. Guten Morgen,

    bisschen spät, aber besser als gar nicht! Oder?

    Aus beruflichen Gründen ging es leider nicht eher.

    Lösung ist aus dem Netz und habe für mich erweitert.

    Gruß
    Hauenkrieger


    Ansatz:

    SpalteA ab Zeile2: Empfänger
    SpalteB ab Zeile2: Wahr/Falsch
    B2: Wahr

    Lösung:

    Private Sub CommandButton1_Click()
    Dim oAppOutlook As Object
    Dim i As Long
    Dim sEmpfaenger As String
    Dim sEmpfaengerzus As String
    Dim sTemp As String

    'Dateipfad_herausfinden

    Dim spath As String
    Dim sname As String
    Dim scomplete As String

    spath = ThisWorkbook.Path
    sname = ThisWorkbook.Name
    scomplete = ThisWorkbook.Path + "\" + ThisWorkbook.Name
    sEmpfaenger = Sheets("Tabelle1").Cells(1, 2).Value
    sTemp = ""

    With Sheets("Tabelle1")
    For i = 1 To .UsedRange.Rows.Count + .UsedRange.Row - 1
    If .Cells(i, 2).Value = sEmpfaenger Then
    sTemp = sTemp & .Cells(i, 1).Value & ";"
    End If
    Next i

    'Das letzte Semikolon entfernen
    If Trim(sTemp) "" Then
    sTemp = Left(sTemp, Len(sTemp) - 1)
    End If
    End With

    'Wenn mindestens eine E-Mail Adresse gefunde wurde wird
    'eine E-Mail vorbereitet:
    If Trim(sTemp) "" Then

    Set oAppOutlook = CreateObject("Outlook.Application")
    With oAppOutlook.CreateItem(0)
    .To = sTemp
    .Subject = "Testnachricht : " & sname 'E-Mail Betreffzeile
    link = ActiveWorkbook.FullName
    '----------------------------------------------------------------------------------------
    .HTMLBody = "textinhalt" _
    & "

    " _
    & """" & sname & """" _
    & "

    " _
    & "

    " _
    & "----------------------------------------------------------------------------------------------" _
    & "
    " _
    & "Grüße Hauenkrieger" _

    .Display
    '.send
    End With



    Else

    MsgBox "Keine E-Mail Adresse hinterlegt!"

    End If

    Set oAppOutlook = Nothing


    End Sub
     
    hauenkrieger, 15. November 2015
    #12
Thema:

Mail aus Excel heraus mit Verteilerliste

Die Seite wird geladen...
  1. Mail aus Excel heraus mit Verteilerliste - Similar Threads - Mail Excel Verteilerliste

  2. VBA eine Mail Empfänger aus Zellen ziehen

    in Microsoft Excel Hilfe
    VBA eine Mail Empfänger aus Zellen ziehen: Hallo, aktuell habe ich alle Mail-Empfänger in einer Zelle (K11) mit Semikolon getrennt stehen. Aktuell schaut es so aus: .To = Range("K11").Value Ziel ist es aber die Empfänger...
  3. VBA Grafik in E-Mail einfügen

    in Microsoft Excel Hilfe
    VBA Grafik in E-Mail einfügen: Hallo zusammen, ich habe mir in verschiedenen Foren einen VBA-Code zusammengesucht, angepasst und entsprechend nutze ich diesen jetzt auch. Hierzu hätte ich jetzt zwei Fragen: 1. Grafik wird...
  4. Komplexes Makro ohne Ahnung :-/

    in Microsoft Excel Hilfe
    Komplexes Makro ohne Ahnung :-/: Hallo Ihr Lieben, ich brauche ganz dringend Hilfe. Ich bin zwar mit Formeln in Excel ganz gut aufgestellt, aber mit Makros leider nicht. Ich muss für meine Eltern und mich viele Versicherungen und...
  5. Anzahl geantwortete Mails in Outlook auslesen und in Excel einfügen

    in Microsoft Excel Hilfe
    Anzahl geantwortete Mails in Outlook auslesen und in Excel einfügen: Guten Tag, ich brauche Codebeispiele, die geantwortete Emails in vergleich zu Anzahl alle Mails in Outlook auslesen kann und als eine Diagramme (Anzahl% für eine Woche) in Excel anzeigen.(z.B ich...
  6. E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.

    in Microsoft Excel Hilfe
    E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.: Diese E-Mail Automatisierung hat bereits Funktioniert nur seit heute kann ich maximal zwei E-Mails versenden. VBA Code: Sub Senden() Dim ol As Outlook.Application Dim olm As Outlook.MailItem...
  7. E-Mail aus Excel mit Knopfdruck versenden

    in Microsoft Excel Hilfe
    E-Mail aus Excel mit Knopfdruck versenden: Hallo zusammen hier wohl wieder eine leichte Fragestellung meinerseits: in einem Excel möchte ich einen Knopf erstellen, der von der drückenden Person eine Mail an eine gewisse Mailadresse...
  8. Excel Teilnehmerliste/Anmeldung mit automatischer Mail/Kalendereintragung

    in Microsoft Excel Hilfe
    Excel Teilnehmerliste/Anmeldung mit automatischer Mail/Kalendereintragung: Hallo zusammen, ich bin neu hier im Forum aber kein kompletter Neuling was Excel angeht. Bis jetzt habe ich meist "nur" mit verschiedenen Formeln gearbeitet was meist super geklappt hat. Ich habe...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden