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

VBA Excel E-Mail versenden wenn wert unterschritte

Forumthread: VBA Excel E-Mail versenden wenn wert unterschritte

VBA Excel E-Mail versenden wenn wert unterschritte
09.02.2016 14:13:46
Benne
Hallo liebe Excelfreunde,
leider muss auch ich zugeben, dass ich mich auf dem Gebiet VBA kaum auskenne. Ich habe hier in den Foren versucht was zu meinem Thema zu finden. Es gibt da einiges, aber eben nicht speziell zu meinen Anliegen. Habe die Hoffnung, dass man mir hier helfen kann.
Meine Mappe Sieht wie folgt aus:
....A........B........ C...........D
1..10......Maier.....Müller....Müller@mail.de
2..25......Schmidt....Klein....kleine@mail.de
3..usw...
Ich möchte das wenn in Spalte A Wert kleiner 20 automatisch eine Mail an den zugehörigen Adressaten aus Zelle D gesendet wird. Also in meinen Beispiel entspricht dies eine Mail an "Müller@mail.de".
Inhalt sollte sein: Lieber Herr Müller (also Name aus C1) der Wert bei Maier (Wert aus B1) liegt bei 10 (also Inhalt aus A1) Stunden. Der Andere (klein) würde so ja vorerst keine benachrichtigung bekommen. Bitte nicht auf diesen Link verweisen https://www.youtube.com/watch?v=i-gvQQ0749Y da ich keinen Serienbrief verwenden möchte. Das hilft mir nicht.
Ich nutze Excel 2010 und Outlook 2010.
Die Werte werden über eine Formel ermittelt. Auch die Mailadressen sollen durch einen SVerweis (oder so) eingepflegt werden, da diese Variabel sind.
Ich hoffe das geht...
VBA und alle anderen Arbeitsschritte sind gewünscht. Also z.B. Was muss auf der VBA Ebene in die Arbeitsmappe, was in Tabelle 1, etc.
Vielen Dank
Benne

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
10.02.2016 11:41:52
Benne
Hab da jetzt was gefunden was mich schon einen Schritt weiter bringt.
Sub OL_Senden1()
Dim olApp As Object
Dim objMail As Object
If Range("B3").Value 
Hab dabei nur das Problem, dass dies nur für eine Zeile geht. Ich habe aber merhrere wo das funktionieren muss. Befehl sollte also lauten Wenn B4 kleine als 20 dann Mail an D4, Wenn B5 kleiner als 20 dann Mail an D5, usw... Muss man da irgentwie eine Schleife einbauen?

Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
10.02.2016 16:15:21
Benne
Ich komme echt nicht weiter. Ist das nicht machbar?
Bitte bitte meldet sich jemand....
;
Anzeige
Anzeige

Infobox / Tutorial

VBA für automatisches E-Mail-Versenden in Excel


Schritt-für-Schritt-Anleitung

Um eine E-Mail zu versenden, wenn ein Wert in Excel unter einen bestimmten Grenzwert fällt, kannst du VBA (Visual Basic for Applications) verwenden. Hier sind die Schritte, die du befolgen solltest:

  1. Öffne Excel und aktiviere das VBA-Entwicklertool:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub OL_Senden()
       Dim olApp As Object
       Dim objMail As Object
       Dim i As Integer
    
       Set olApp = CreateObject("Outlook.Application")
    
       For i = 1 To 10 'Hier die Anzahl der Zeilen anpassen
           If Cells(i, 1).Value < 20 Then
               Set objMail = olApp.CreateItem(0)
               With objMail
                   .To = Cells(i, 4).Value
                   .Subject = "Wert unterschreitet Grenzwert"
                   .Body = "Lieber Herr " & Cells(i, 3).Value & ", der Wert bei " & Cells(i, 2).Value & " liegt bei " & Cells(i, 1).Value & " Stunden."
                   .Send
               End With
           End If
       Next i
    End Sub
  4. Passe den Code an deine Bedürfnisse an:

    • Stelle sicher, dass die Anzahl der Zeilen (in For i = 1 To 10) zu deiner Datenmenge passt.
  5. Schließe den VBA-Editor und führe das Makro aus:

    • Drücke ALT + F8, wähle OL_Senden und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: „Objektvariable nicht festgelegt“

    • Stelle sicher, dass Outlook installiert und richtig konfiguriert ist.
  • Fehler: E-Mail wird nicht gesendet

    • Überprüfe, ob die E-Mail-Adressen in Spalte D korrekt sind.
  • E-Mail wird nur für eine Zeile gesendet

    • Achte darauf, dass die Schleife (For i = 1 To 10) die korrekte Anzahl an Zeilen abdeckt.

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Excel-Add-Ins wie "Mail Merge" oder "MailChimp" für Massen-E-Mails verwenden. Diese Tools bieten eine einfachere Benutzeroberfläche, um E-Mails basierend auf Excel-Daten zu versenden.


Praktische Beispiele

Hier ist ein einfaches Beispiel:

A B C D
10 Maier Müller mueller@mail.de
25 Schmidt Klein kleine@mail.de

Wenn der Wert in Spalte A kleiner als 20 ist, wird eine E-Mail an die Adresse in Spalte D gesendet.


Tipps für Profis

  • Verwende bedingte Formatierung: Markiere Werte in Excel, die unter 20 fallen, damit du visuell sofort siehst, wo Handlungsbedarf besteht.

  • Testmail: Teste den E-Mail-Versand immer mit einer eigenen Adresse, bevor du das Makro in der Produktionsumgebung ausführst.

  • Error Handling: Implementiere Fehlerbehandlung in deinem VBA-Code, um Probleme beim Senden der E-Mails zu erkennen.


FAQ: Häufige Fragen

1. Wie kann ich die E-Mail-Vorlage anpassen?
Du kannst den Text im .Body-Feld im VBA-Code anpassen, um die E-Mail nach deinen Wünschen zu gestalten.

2. Funktioniert das auch mit Excel 365?
Ja, der VBA-Code ist mit Excel 2010 und auch neueren Versionen kompatibel, solange Outlook installiert ist.

3. Kann ich mehrere E-Mail-Adressen in einer Zelle speichern?
Ja, du kannst mehrere E-Mail-Adressen durch ein Semikolon trennen, jedoch wird der Code in diesem Fall angepasst werden müssen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige