mein Thread ist leider schon ins Archiv gewandert: https://www.herber.de/forum/archiv/1000to1004/t1002911.htm
Ich beziehe mich nochmal auf die letzte Nachricht von Rainer:
Hallo
Was willst du denn übergeben ?
Dein Makro "sende_stoermeldung" ist nicht dafür geeignet einen Parameter zu übernehmen
Ich muss es noch ein bischen erklären (Datei kann ich leider nich hochladen, 5 MB):
In dieser Mappe werden Werte registriert, für die jeweiligen Spalten gibts es Grenzwerte.
Sobald dieser überschritten wird, soll er eine "Störmeldung per E-Mail abschicken.
Für die Grenzwerte steht folgendes in Modul Tabelle 1:
Private Sub Worksheet_Change(ByVal Target As Range)
Const Zeile1 = 4 'erste Zeile mit Werten
Const ZeileMeldung = 3 ' Zeile mit der Warnmeldung (z.B. "Drehzahl hoch")
Dim rng As Range, z As Range
Dim i As Integer
Dim Sp(1 To 15) As Integer
Dim GW(1 To 15) As Double
Dim z1 As Long
'Spalten Setzen
For i = 1 To 15
Sp(i) = i + 36 'Wert1 in Spalte 37 (AK) usw.
Next i
'Grenzwerte setzen:
GW(1) = 1: GW(2) = 2: GW(3) = 3: GW(4) = 4: GW(5) = 5: GW(6) = 6
GW(7) = 7: GW(8) = 8: GW(9) = 9: GW(10) = 10: GW(11) = 11: GW(12) = 12
GW(13) = 13: GW(14) = 14: GW(15) = 15
For i = 1 To 15 ' alle 15 Spalten prüfen:
Set rng = Intersect(Target, Range(Cells(Zeile1, Sp(i)), Cells(Rows.Count, Sp(i))))
If Not rng Is Nothing Then
For Each z In rng
If z.Value > GW(i) Then
'letzten 2 Minuten prüfen (alle 10 Sekunden ein Wert also 12 Werte):
z1 = Application.Max(z.Row - 12, Zeile1) '12 Zeilen hoch, höchstens bis [Zeile1] _
_
_
wg. Überschriften
If WorksheetFunction.Max(Range(Cells(z1, z.Column), z.Offset(-1, 0)))
Die E-Mail Prozedur sieht so aus (von Rainer):
Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub sende_stoermeldung()
Dim eMailTo As String, Subject As String, Body As String
eMailTo = "irgendwer@provider.de"
Subject = "Störmeldung: " & mld & " " & Date & " " & Time 'Leerzeichen _
bitte belassen
Body = ""
Call Mail(eMailTo, Subject, Body)
End Sub
Sub Mail(eMail As String, Optional Subject As String, Optional Body As String)
'Hier nichts ändern
Call ShellExecute(0&, "Open", "mailto:" + eMail + _
"?Subject=" + Subject + "&Body=" + Body, "", "", 1)
End Sub
Wo mein Problem dabei liegt:
kann ich aufgrund meiner nicht vorhandenen Kenntnisse nicht ausmachen.
Danke im Voraus für eure Hilfe.
christian