Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Excel E-Mail versenden wenn wert unterschritte

VBA Excel E-Mail versenden wenn wert unterschritte
30.05.2016 09:41:20
Benne
Hallo Liebe Excelfreunde,
ich arbeite schon sehr lange (mit einer längeren Pause) an einem Problem und bin auch bereit, nach diesem letzten Versuch aufzugeben. Vielleicht ist hier noch ein netter Tüftler. Ich hatte das Problem auch schon in Foren veröffentlicht, hatte aber immer wieder eine Fehlermeldung bekommen. Jetzt versuche ich es so detailliert wie möglich zu beschreiben.
Ausgangssituation:
Ich arbeite für einen sozialen Träger, der Dienstleistungen am Klienten anbietet. Dafür wird über einen bestimmten Zeitraum von einem Auftraggeber Arbeitszeitstunden angeboten, die eine Fachkraft bedient, und es muss vor Beendigung der Maßnahme ein Bericht angefertigt werden.
Hier die Mappe in sehr abgespeckter Version, da sie sonst zu groß ist:
https://www.herber.de/bbs/user/105859.xlsx
Problembeschreibung:
Der Job ist für Mitarbeiter sehr stressbelastet, was dazu führen kann, dass Mitarbeiter immer wieder die bewilligten Arbeitszeitstunden überziehen und auch der Bericht vergessen wird rechtzeitig anzufertigen.
Lösung:
EXCEL….Die angefertigte Excelmappe hilft dabei. Die Bewilligten Stunden werden monatlich berechnet und durch bedingte Formatierung werden Warnungen angezeigt, die mich darauf hinweisen, dass die Stunden bald ablaufen, oder Berichte anzufertigen sind. Funktioniert gut…
Der Mitarbeiter wird dann von mir per Mail gewarnt und es konnten schon einige Überziehungen verhindert werden.
Jetzt möchte ich allerdings einen Schritt weiter gehen.
Ich habe mich schon durch sämtliche Foren gekämpft und diverse Lösungen ausprobiert. Komme aber nicht zu einer Lösung (Hätte es fast geschafft, aber dann war das VBA zu lang)
Folgendes soll via VBA umgesetzt werden:
Wenn in Zelle N4 die Stundenzahl unter 20 beträgt, soll automatisch (mit vorgegebenen Text und nach Drücken auf den Button „E-Mail Senden“) eine Mail an den Adressaten in Zelle R4 versendet werden. Funktioniert auch wenn ich es wie folgt aufbaue:
Sub e_mailSenden()
Dim olApp As Object
Dim objMail As Object
If Range("N4").Value 0 Then
Set olApp = CreateObject("Outlook.Application")
Set objMail = olApp.CreateItem(olMailItem)
With objMail
.To = Sheets("Fallübersicht").Range("R4").Value
.Subject = "Achtung Poolstunden bald aufgebraucht"
.Body = "Liebe Kollegin/Lieber Kollege," & vbNewLine & vbNewLine & "der Stundenpool bei " & Sheets("Fallübersicht").Range("B4").Value & " weißt nur noch " & Sheets("Fallübersicht").Range("N4").Value & " Reststunden auf." & vbNewLine & "Dies ist eine automatische Benachrichtigung."
.Display 'zeigt die Mail nur an - du musst auf Senden klicken
'.Send 'legt die Mail gleich in den Postausgang
End With
End If
Zudem wird in Zelle O4 ein Status abgefragt. Bei zutreffen erscheint dort „Bericht fällig“. Auch hier soll eine Meldung erfolgen.
Auch dies funktioniert, wie folgt:
If Range("O4").Value = "Bericht fällig" Then
Set olApp = CreateObject("Outlook.Application")
Set objMail = olApp.CreateItem(olMailItem)
With objMail
.To = Sheets("Fallübersicht").Range("R4").Value
.Subject = "Achtung Bericht fällig"
.Body = "Liebe Kollegin/Lieber Kollege," & vbNewLine & vbNewLine & "die Hilfemaßnahme bei " & Sheets("Fallübersicht").Range("B4").Value & " läuft bald aus und der Bericht ist somit fällig." & vbNewLine & "Dies ist eine automatische Benachrichtigung."
.Display 'zeigt die Mail nur an - du musst auf Senden klicken
'.Send 'legt die Mail gleich in den Postausgang
End With
End If 'Ende Zeile
Mein Problem war (und ist) an dieser Stelle, dass die Befehle sich für die weiteren Zeilen wiederholen und ich kein zusammenfassendes VBA hinbekommen habe (es gab immer Fehlermeldung). Somit kam ich auf die glorreiche Idee, Das VBA immer wieder zu Kopieren. Als ich fertig war, bekam ich die Fehlermeldung, dass das VBA zu lang sei. Somit benötige ich eine kürzere Lösung. So…jetzt solltet ihr mein Problem kennen. Ich benötige ein wie oben beschriebenes VBA, dass für den Zellenbereich „Buchstabe“4 : „Buchstabe“103 funktioniert.
Habt Ihr eine Idee?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
30.05.2016 11:34:33
Michael
Hallo Benedikt!
Deine Bsp-Datei angepasst, bitte teste mal: https://www.herber.de/bbs/user/105862.xlsm
Ich habe Dir auch die Spalte "erledigt" angepasst, damit Du dort keine Checkboxen verwenden musst. Doppelklick in die Zellen setzt oder entfernt ein Häkchen.
Makros liegen im allgemeinen Modul1 bzw. im Klassenmodul der Tabelle1.
LG
Michael

AW: VBA Excel E-Mail versenden wenn wert unterschritte
30.05.2016 20:13:00
benne
Vielen Dank...Deine Tabelle funktioniert Super. Allerdings muss ich das VBA in meine Mappe übertragen. Dabei hat die Tab einen anderen Namen, denn ich auch richtig umtrage. Dann bekomme ich beim ausführen eine Fehlermeldung:
Laufzeitfehler 13
Typen unverträglich
Muss an der Mappe liegen, da es bei der Umbezeichnung auf andere Mappe wieder funktioniert.
Ich habe da eine WENN DANN Formel in N4 - N103 und eine begingte Formatierung. Beides mal rausgenommen. Aber daran liebt es nicht.
Es wird folgender Bereich beim Debuggen gelb markiert im VBA:
Call Reststunden(Ma.Offset(, 4).Value, Ma.Offset(, -12).Value, Ma.Value)
Hast du da auch noch eine Idee?
Vielen lieben Dank schonmal. Ich bin bis hierhin begeistert.

Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 07:03:17
Michael
Hallo!
Freut mich. Die bedingte Formatierung ist egal, aber bzgl. der Formel ab N4 hab ich noch eine Frage:
- steht die Formel bereits in allen Zellen bis N103, auch wenn in der jeweiligen Zeile keine anderen Eintragungen vorhanden sind?
- zeigt die Formel eine leere Zelle, wenn in der Zeile keine weiteren Eintragungen vorhanden sind?
Lässt sich sicher noch lösen...
Gib Bescheid
Michael

AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 07:36:37
benne
Hallo Michael,
erstmal vielen Dank, dass du Dir die Zeit nimmst.
Beide Fragen kann ich nur mit "Ja" beantworten.
Von Zelle N4 - N103 zieht sich folgende Formel durch:
= WENN(Hilfstabelle!A3=1;SUMME(Fallübersicht!H4-Fallübersicht!M4);WENN(Hilfstabelle!A3=2; SUMME(Fallübersicht!J4-Fallübersicht!M4);0))
Wie du siehst, zieht sich die Formel noch Daten aus einer anderen Tabelle (Hilfstabelle). Hoffe das macht keine Probleme.
Zu Deiner zweiten Frage kann ich auch nur sagen, dass nichts in der Zelle angezeigt wird, wenn in der Spalte nichts eingetragen ist. Auch die Nullen habe ich durch die Optionen (Häckchen entfernt) nicht anzeigen lassen.

Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 10:13:09
Michael
Hallo!
Bsp-Datei ergänzt, teste mal: https://www.herber.de/bbs/user/105885.xlsm
Ich hab Dir in den Codes auch noch ein paar (kurze) Kommentare hinzugefügt - Du kannst nun das betroffene Tabellenblatt selbständig im Code ändern; entsprechende Stelle findest Du gem. Kommentar.
Der Code für die Kontroll-Häkchen (Doppelklick) muss natürlich auch immer in das Klassenmodul jenes Tabellenblattes kopiert werden, in dem er gelten soll. In der o.a. Datei ist das Tabellenblatt "Fallübersicht"; musst Du ggf. verschieben, Kommentar ist dabei.
LG
Michael

Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 13:17:37
Benne
Lieber Michael,
es FUNKTIONIERT!!!! Ich bin voller freude. Wenn du in der nähe von Lübeck lebst, kannst du gerne mal reinschauen und eine Flasche Wein rausholen (außer du bist minderjährig). Oder kann ich sonst was für dich tun?
Vielen vielen Dank. Seit Monaten suche ich immer wieder eine Lösung.
Ach nochwas...woher wusstest du eigentlich meinen Namen? Ist der auf der Mappe irgentwo einzulesen?

AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 13:37:53
Michael
Hallo!
Das freut mich! Wundert mich allerdings, dass Du solange nach einer Lösung gesucht hast - ich hab da kein Hexenwerk vollbracht, im Grunde nur Deinen Code bereinigt und in eine Schleife gebettet; das können wahrlich Andere, viele Andere auch :-).
woher wusstest du eigentlich meinen Namen? Ist der auf der Mappe irgentwo einzulesen?
Ja, sofern Du beim Einrichten von Office einen Benutzernamen angegeben hast (bzw. das Admin-seitig so eingerichtet wurde), findest Du diesen im Menüband unter Datei - Autor. Wenn Du da sichergehen willst, dass das nicht sichtbar wird, musst Du "Eigenschaften und persönliche Informationen" aus der Datei entfernen, bevor Du sie hochlädst. Das ist im Übrigen bspw. auch und gerade bei ins Netz geladenen Bildern interessant und tlw. ratsam. Das Ganze geht mit Windows Bordmitteln in ein paar Klicks (Windows 7, davor weiß ich nicht, danach bin ich nicht sicher, wie es geht): Rechtsklick auf die Datei, Eigenschaften, Details, unten auf "Eigenschaften und persönliche Informationen" klicken und dann "Folgende Eigenschaften aus der Datei entfernen" wählen, Alle auswählen und OK. Fertig!
Danke auch für das Wein-Angebot... wird allerdings schwierig, denn das sind dann zu mir nach Ö gute 1000km ;-). Aber falls Du Dich für die Hilfe erkenntlich zeigen willst, ein anderer Vorschlag: Spende doch den Gegenwert des Weines (oder einer Kiste Bier) einem guten Zweck Deiner Wahl (Flüchtlingshilfe?).
außer du bist minderjährig
Das geht sich schon länger nicht mehr aus...
LG
Michael

Anzeige
AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 15:26:59
Benne
O.K. ich werde das machen. Allerdings hast du schon dafür gesorgt. Wir sind ein freier Träger der Jugendhilfe und bieten u.a. genau für diese Flüchtlinge gesonderte Hilfemaßnahmen an. Die Datei, die Du für mich bearbeitet hast erfüllt seinen Teil für diese Flüchtlingsarbeit und unser Träger lebt u.a. von den besagten Spenden. Lieben Gruß... und danke nochmal...

AW: VBA Excel E-Mail versenden wenn wert unterschritte
31.05.2016 15:46:34
Michael
Hallo!
Allerdings hast du schon dafür gesorgt. Wir sind ein freier Träger der Jugendhilfe
Dann freut's mich natürlich besonders.
Lieben Gruß... und danke nochmal...
Ebenso und gerne!
LG
Michael
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige