Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schwellwerte im Messbereich

Schwellwerte im Messbereich
15.01.2007 13:17:20
sandro
grüß euch!
ich habe folgendes problem und ich hoffe ihr könnt mir helfen.
es werden von einer maschine automatisch messwerte in bestimmte zellen eingefügt.(F16-unendlich)
jetzt habe ich die aufgabe diese messwerte mit folgenden anforderungen in ein diagramm zu übernehmen:
1. Wird der Wert 50 - 10mal hintereinander überschritten kommt eine msgbox.
jetzt ist es so das wenn der wert insgesamt(über den ganzen bereich) 10 mal überschritten wird erscheint die msgbox.
2. Wenn zb.: F17 leer bleibt und bei F18 ein datensatz hineingeschrieben wird sollte in F17 automatisch der wert 55 geschrieben werden.
3. Sollte die Messung einen Wert unter -10 ergeben sollte eine msgbox erscheinen.
ich habe das bis jetzt so weit:
ein modul:
Option Explicit
Const DR_COLUMN = 6 'hier Spalte F
Const DR_ROW = 16
Const DUMMYVALUE = 55
Const SCHWELLE = 50
Const HSCHWELLE = 10
Sub ReDrawDiagramm()
Dim ws As Worksheet, maxRow As Long
Dim c As Range, countXplus As Integer
Set ws = Worksheets("INDIVIDUAL")
maxRow = ws.Cells(Rows().Count, DR_COLUMN).End(xlUp).Row
'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value >= SCHWELLE Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
If countXplus > HSCHWELLE Then
Beep
Beep
MsgBox countXplus & " Messwerte überschreiten den Grenzwert " & SCHWELLE & "! BITTE EINSTELLER KONTAKTIEREN!!!"
Beep
End If
End Sub
und im file:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static prevAdr As String
Dim currAdr As String
currAdr = Target.Address
If Target.Column = DR_COLUMN Then
ReDrawDiagramm
End If
prevAdr = currAdr
End Sub

danke im voraus!!!!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schwellwerte im Messbereich
15.01.2007 16:23:48
fcs
Hallo Sandro,
dann muss du deine Zählroutine und die Meldungen etwa wie folgt anpassen. ggf. die als Bemerkung eingegebenen Zeilen auch aktivieren.
Gruß
Franz

Option Explicit
Const DR_COLUMN = 6 'hier Spalte F
Const DR_ROW = 16
Const DUMMYVALUE = 55
Const SCHWELLE = 50
Const SCHWELLEMIN = -10
Const HSCHWELLE = 10
Sub ReDrawDiagramm()
Dim ws As Worksheet, maxRow As Long
Dim c As Range, countXplus As Integer, countX10 As Integer, countXmin As Integer
Set ws = Worksheets("INDIVIDUAL")
maxRow = ws.Cells(Rows().Count, DR_COLUMN).End(xlUp).Row
'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value >= SCHWELLE Then 'ggf vor Leerzellenauffüllung setzen
countXplus = countXplus + 1
If countXplus >= HSCHWELLE Then
'        countXplus = 0 'evtl. Zähler hier zurücksetzen
countX10 = countX10 + 1
'       Exit For ' Falls Zählung beendet werden soll, sobald das 1. Mal HSCHWELLE überschritten
End If
Else
countXplus = 1
End If
If c.Value <= SCHWELLEMIN Then 'ggf vor Leerzellenauffüllung setzen
countXmin = countXmin + 1
'       Exit For ' Falls Zählung beendet werden soll, sobald das 1. Mal SCHWELLEMIN unterschritten
End If
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
If countXmin > 0 Then
Beep
Beep
MsgBox countX10 & " mal haben Messwerte den Grenzwert " _
& SCHWELLEMIN & " unterschritten!" & vbLf & vbLf & "BITTE EINSTELLER KONTAKTIEREN!!!"
End If
If countX10 > 0 Then
Beep
Beep
MsgBox countX10 & " mal haben " & HSCHWELLE & " aufeinander folgende Messwerte den Grenzwert " _
& SCHWELLE & " überschritten!" & vbLf & vbLf & "BITTE EINSTELLER KONTAKTIEREN!!!"
End If
End Sub

Anzeige
AW: Schwellwerte im Messbereich
15.01.2007 17:22:14
sandro
hallo!
ich habe das anders gelöst:
Const DUMMYVALUE = 55
Const SCHWELLE = 49
Const HSCHWELLE = 9
Const SCHWELLEMIN = -9
Const HSCHWELLEMIN = 0

Sub ReDrawDiagramm()
Dim ws As Worksheet, maxRow As Long
Dim c As Range, countXplus As Integer, countXmin As Integer
Set ws = Worksheets("INDIVIDUAL")
maxRow = ws.Cells(Rows().Count, DR_COLUMN).End(xlUp).Row
'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value >= SCHWELLE Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
If c.Value <= SCHWELLE Then countXplus = 0 'Zurücksetzen des Counters
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" Then c.Value = DUMMYVALUE
If c.Value <= SCHWELLEMIN Then countXmin = countXmin + 1 'ggf vor Leerzellenauffüllung setzen
If c.Value >= SCHWELLEMIN Then countXmin = 0 'Zurücksetzen des Counters
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN
If countXplus > HSCHWELLE Then
Beep
Beep
MsgBox countXplus & " Messwerte überschreiten den Grenzwert " & SCHWELLE & "! SOFORT EINSTELLER KONTAKTIEREN!!!"
Beep
End If
If countXmin > HSCHWELLEMIN Then
Beep
Beep
MsgBox countXmin & " Messwert überschreitet den Grenzwert " & SCHWELLEMIN & "! SOFORT EINSTELLER KONTAKTIEREN!!!"
Beep
End If
End Sub

----------
Das einzige Problem was ich noch habe ist das mit der Eintragungserkennung:
Const DUMMYVALUE = 55
If c.Value = "" Then c.Value = DUMMYVALUE
Wie gesagt:
die maschine schreibt den Text automatisch hinein. wenn die zelle leer bleibt und in die nächste zelle wieder was geschrieben wird dann muss der user eine zelle unter dieser anklicken damit in die leere zelle der wert 55 eingetragen wird.
wie mache ich das damit es voll automatisch erkennt ob in der nächsten zeile was drinnen steht und das es automatisch ohne zu klicken den wert 55 reinschreibt?
danke
Anzeige
AW: Schwellwerte im Messbereich
15.01.2007 22:09:01
fcs
Hallo Sandro,
das Problem mit dem Auffüllen einer Leerzelle kannst du folgendermassen lösen:

If c.Value = "" and c.Offset(1,0) <> "" Then c.Value = DUMMYVALUE

Meiner Meinung nach muss du die Schleifen wie folgt aufbauen, damit Grenzwertüberschreitungen bzw. -unterschreitungen erkannt werden. Den Diagrammdatenbereich brauchst du auch nur einmal zuzuweisen.

'Routine zur Festellung ob Werte gesetzt sind und
'wie of der Wert X überschritten wurde
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value = "" And c.Offset(1, 0) <> "" Then c.Value = DUMMYVALUE
If c.Value > SCHWELLE Then countXplus = countXplus + 1 'ggf vor Leerzellenauffüllung setzen
If countXplus > HSCHWELLE Then Exit For
If c.Value <= SCHWELLE Then countXplus = 0 'Zurücksetzen des Counters
Next
For Each c In Range(Cells(DR_ROW, DR_COLUMN), Cells(maxRow, DR_COLUMN))
If c.Value < SCHWELLEMIN Then countXmin = countXmin + 1 'ggf vor Leerzellenauffüllung setzen
If countXmin > HSCHWELLEMIN Then Exit For
If c.Value >= SCHWELLEMIN Then countXmin = 0 'Zurücksetzen des Counters
Next
ActiveWorkbook.Names.Add Name:="Diagrammdaten1", RefersToR1C1:= _
"=" & ws.Name & "!R" & DR_ROW & "C" & DR_COLUMN & ":R" & maxRow & "C" & DR_COLUMN

Gruss
Franz
Anzeige
AW: Schwellwerte im Messbereich
16.01.2007 07:41:27
sandro
hallo!
dankeschön für die Hilfe!!!
Jetzt funktioniert alles so(hoffe ich) wie ich es wollte!
danke
Gruß
Sandro

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige