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

Wenn Bedingung erfüllt, dann Mail senden

Forumthread: Wenn Bedingung erfüllt, dann Mail senden

Wenn Bedingung erfüllt, dann Mail senden
16.04.2021 19:34:47
Günter
Hallo an das Forum,
bin neu hier und hoffe, dass mir geholfen werden kann. Habe vor 20 Jahren 4 Semester Programmiersprachen studiert und muss nun feststellen, dass außer ein paar Basics nicht mehr viel vorhanden ist
Ich kann mit Excel was Formeln, Matrixformeln, Pivotabellen und Grafiken recht gut umgehen. Habe aber nun ein Problem, dass offensichtlich eine Lösung über VBA benötigt.
Ich habe mal ein Bsp. angehängt.
Folgendes Problem:
Wenn bei dem Bsp. in Spalte H ein I oder N steht soll grundsätzlich eine Mail an die Person in Spalte G (die jeweilige Mailadresse steht im Blatt EMail Liste) und wenn in Spalte H keine Eingabe vorhanden ist soll auch keine Mail verschickt werden.
In Spalte H steht "I" für Information und würde einen Text wie Z.B "Name1, die zugeordnete Aufgabe ist Überfällig"
In Spalte H steht "N" für neue Aufgabe und würde dann vom Txt etwa so aussehen "Name1, ihnen wurde eine neue Aufgabe zugeordnet.
Bei beiden Auswahlvarianten sollte der Txt von Titel als auch von ToDo übernommen werden.
Ich hoffe es findet sich jemand der mir hier weiterhelfen kann.
Ich bedanke mich jetzt schon mal für das Lesen des Textes.
https://www.herber.de/bbs/user/145605.xlsx
Gruß
Günter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn Bedingung erfüllt, dann Mail senden
16.04.2021 20:26:46
Oberschlumpf
Hi Günter,
hier, probier mal aus:
https://www.herber.de/bbs/user/145606.xlsm
Wie du merkst, hab ich die Zelle H1 in der Datenliste anders gefärbt.
Schau dir den von mir angepassten Kommentar an, und du wirst die Farbänderung verstehen.
Mit meinem Code werden, Outlook vorausgesetzt, in Outlook immer dann Mails erstellt, wenn die vorgebenen Bedingungen "I" oder "N" erfüllt sind.
Die Mails werden erstellt und "nur" angezeigt - zum Absenden musst du in jeder Mail noch auf den Sendebutton klicken.
Das hat den Vorteil, dass du vor dem Senden noch mal jede Mail überürüfen kannst.
Wenn du aber nix prüfen willst, sondern die Mails sollen gleich versendet werden, dann änder diese Zeile...

.Display
...um in...

.Send
Hilfts?
Ciao
Thorsten
Anzeige
AW: Wenn Bedingung erfüllt, dann Mail senden
19.04.2021 08:17:55
Günter
Hallo Thorsten,
vielen Dank, genau so hatte ich das angedacht.
Super Lösung :-)
Gruß
Günter
AW: Wenn Bedingung erfüllt, dann Mail senden
19.04.2021 19:00:14
Günter
Hallo Thorsten,
Dein Programm läuft super.
Jetzt habe ich erfahren, dass es zwischenzeitlich auch PCs mit Windows 365 gibt und da läuft dies nicht. Kann es tatsächlich sein, dass hier ein anderer Code erforderlich ist?
Gruß
Günter
Anzeige
AW: Wenn Bedingung erfüllt, dann Mail senden
19.04.2021 22:12:14
Oberschlumpf
Hi Günter,
du schreibtst "Windows 365", meinst aber "Office 365", oder?
Die Frage kann ich dir jedenfalls leider nicht beantworten, da ich nicht mit Office 365 arbeite.
Ciao
Thorsten
AW: Wenn Bedingung erfüllt, dann Mail senden
20.04.2021 16:36:05
Günter
Hi Thorsten,
stimmt Office 365.
Ich habe zu mindestens jetzt herausbekommen, dass auf dem Netzwerk nur digital signierte und freigegebene Makros laufen.
Muss jetzt mal mit den entsprechenden Personen Kontakt aufnehmen.
Gruß
Günter
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Automatisches Versenden von E-Mails in Excel bei bestimmten Bedingungen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Datei, in der Du E-Mails versenden möchtest.
  2. Aktiviere die Entwicklertools: Gehe zu Datei > Optionen > Menüband anpassen und aktiviere das Kontrollkästchen für die Entwicklertools.
  3. Füge einen VBA-Code hinzu:
    • Klicke auf Entwicklertools und dann auf Visual Basic.
    • Füge ein neues Modul hinzu: Rechtsklick auf VBAProject (DeinDateiname) > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:

    Sub SendEmails()
       Dim ws As Worksheet
       Dim OutApp As Object
       Dim OutMail As Object
       Dim i As Integer
    
       Set ws = ThisWorkbook.Sheets("DeinBlattname") ' Ersetze mit deinem Blattnamen
       Set OutApp = CreateObject("Outlook.Application")
    
       For i = 2 To ws.Cells(ws.Rows.Count, "H").End(xlUp).Row
           If ws.Cells(i, "H").Value = "I" Or ws.Cells(i, "H").Value = "N" Then
               Set OutMail = OutApp.CreateItem(0)
               With OutMail
                   .To = ws.Cells(i, "G").Value
                   .Subject = ws.Cells(i, "Titel").Value ' Ersetze mit dem tatsächlichen Titel
                   .Body = ws.Cells(i, "ToDo").Value ' Ersetze mit dem tatsächlichen ToDo
                   .Display ' Zum Überprüfen der E-Mail vor dem Senden
                   ' .Send ' Verwende dies, um die E-Mail direkt zu senden
               End With
           End If
       Next i
       Set OutMail = Nothing
       Set OutApp = Nothing
    End Sub
  5. Schließe den Visual Basic-Editor und gehe zurück zu Excel.
  6. Führe das Makro aus: Klicke auf Entwicklertools > Makros und wähle SendEmails.

Häufige Fehler und Lösungen

  • Fehler: "Outlook nicht gefunden"
    Lösung: Stelle sicher, dass Outlook installiert und konfiguriert ist.

  • Fehler: E-Mails werden nicht gesendet
    Lösung: Überprüfe, ob die Bedingungen in Spalte H korrekt eingegeben sind.

  • Problem mit digitalen Signaturen
    Wenn Du Office 365 verwendest, stelle sicher, dass die Makros korrekt signiert sind.


Alternative Methoden

Falls Du keine VBA-Codes verwenden möchtest, kannst Du auch Folgendes ausprobieren:

  1. Power Automate: Nutze Microsoft Power Automate, um Workflow-Automatisierungen zu erstellen, die E-Mails basierend auf Excel-Daten versenden.
  2. E-Mail-Add-Ins: Es gibt verschiedene Add-Ins, die das Versenden von E-Mails direkt aus Excel unterstützen, ohne dass VBA erforderlich ist.

Praktische Beispiele

  • Beispiel 1: Wenn in Spalte H "I" steht, wird eine E-Mail mit dem Betreff "Überfällig" und dem Text aus der To-Do-Liste an die entsprechende E-Mail-Adresse gesendet.
  • Beispiel 2: Bei "N" in Spalte H wird eine E-Mail mit dem Betreff "Neue Aufgabe" geschickt.

Diese Beispiele veranschaulichen, wie Du E-Mails basierend auf bestimmten Bedingungen versenden kannst.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines VBA-Codes, um Variablen klar zu definieren.
  • Teste Deine Makros immer in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.
  • Bei Verwendung von Outlook, stelle sicher, dass Du über die richtigen Berechtigungen zum Senden von E-Mails verfügst.

FAQ: Häufige Fragen

1. Kann ich den Code auch in Office 365 verwenden?
Ja, der Code funktioniert in der Regel auch in Office 365, solange die richtigen Berechtigungen für das Ausführen von Makros gesetzt sind.

2. Muss ich Outlook installiert haben?
Ja, der VBA-Code verwendet Outlook, um E-Mails zu versenden. Stelle sicher, dass es installiert und konfiguriert ist.

3. Wie kann ich den Code anpassen?
Du kannst die Zellenreferenzen für Betreff und Nachricht im Code anpassen, um Deine spezifischen Anforderungen zu erfüllen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige