Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro Mail aus Excel

Betrifft: Makro Mail aus Excel von: Christopher
Geschrieben am: 13.08.2014 09:26:51

Hallo zusammen,

ich habe eine Excel-Mappe, in der ich einen Ticker eingebaut habe.
Wenn ein bestimmter Wert unterschritten ist, würde ich gerne eine Mail bekommen, wenn in einer Zelle ein bestimmter Wert unterschritten ist. Ich habe was dafür erstellt, klappt auch wunderbar. Jetzt habe ich aber mehrere Zellen, die überwacht werden müssen (G3:G41) und da bin ich raus. Das bekomme ich irgendwie nicht gebacken.
Kann mir da jemand bitte weiterhelfen?

Hier der bisherige Code:

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
On Error GoTo fehler
Const Minimumwert As Double = 20
Const ÜberwachteZelle As String = "$G$3"

If Target.Address = ÜberwachteZelle Then
If CDbl(Target.Value) < Minimumwert Then
Call ZellÜberwachung
End If
End If
fehler:
If Err = 13 Then
MsgBox "Bitte geben Sie nur nummerische Werte ein!", _
vbExclamation + vbOKOnly, "Eingabefehler ..."
End If
End Sub
Sub ZellÜberwachung()
Dim oOL As Outlook.Application
Dim oOLMI As Outlook.MailItem

Set oOL = New Outlook.Application
Set oOLMI = oOL.CreateItem(olMailItem)

'Application.DisplayAlerts = True

With oOLMI
.To = "christopher.roth@do.panopa.com"
.Subject = "Nachschulung Luftsicherheit"
.Body = "Hallo Christopher," & vbNewLine & vbNewLine & _
"bitte um Nachschulung Luftsicherheit kümmern"
.Send

End With

Set oOL = Nothing
Set oOLMI = Nothing
End Sub

  

Betrifft: AW: Makro Mail aus Excel von: Rudi Maintaire
Geschrieben am: 13.08.2014 10:20:38

Hallo,
Umlaute in VBA solltest du vermeiden.

Private Sub Workbook_SheetChange _
  (ByVal Sh As Object, _
   ByVal Target As Range)
  Dim rUeberwacht As Range
  On Error GoTo fehler
  Const Minimumwert As Double = 20
  Set rUeberwacht = Range("G3:G41")
  
  If Not Intersect(Target, rUeberwacht) Is Nothing Then
    If WorksheetFunction.CountIf(rUeberwacht, "<" & Minimumwert) Then
      Call ZellUeberwachung
    End If
  End If
fehler:
  If Err = 13 Then
    MsgBox "Bitte geben Sie nur nummerische Werte ein!", _
    vbExclamation + vbOKOnly, "Eingabefehler ..."
  End If
End Sub



  

Betrifft: AW: Makro Mail aus Excel von: Christopher
Geschrieben am: 13.08.2014 10:41:12

Hallo,

danke für die schnelle Antwort.
Leider klappt´s irgendwie noch nicht.
Ich bekomme immer folgende Fehlermeldung:

Fehler beim Kompilieren
Sub oder Function nicht definiert

Ist da irgendwo noch ein Fehler drin?

Vielen Dank!


  

Betrifft: AW: Makro Mail aus Excel von: Rudi Maintaire
Geschrieben am: 13.08.2014 11:19:31

Hallo,
das liegt wohl daran, dass du noch immer eine Sub ZellÜberwachung hast.

Gruß
Rudi


  

Betrifft: AW: Makro Mail aus Excel von: Christopher
Geschrieben am: 14.08.2014 10:40:20

Hallo,

das klappt perfekt, vielen Dank!

Jetzt benötige ich noch etwas....gibt es da auch etwas, dass sich Excel 1x pro Tag selbst aktualisiert /speichert ohne, dass ich Excel öffnen muss?

Sonst müsste ich jedes Mal Excel öffnen & bekomme dann erst die Mails...

VIelen Dank vorab!