wertebereich prüfen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: wertebereich prüfen von: Dirk Behrens
Geschrieben am: 20.03.2005 16:02:34

hallo,
habe folgendes problem. habe eine messreihe mit mehr als 10.000 werten. für alle werte gibt es in einer weiteren spalte einen zeitstempel im 15min raster.
nun möchte ich ein veränderliches zeitfenster (z.b. 2 std also 8 zeilen, oder 6 std entsprechend 24 zeilen) über die gesamte spalte mit den messwerten laufen lassen und den inhalt des fensters prüfen. für einen durchlauf soll sich das zeitfenster dabei natürlich nicht ändern. vielmehr dient es einer sensitivitätsanalyse.
es soll geprüft werden, ob die werte innerhalb eines bestimmten bereiches liegen. falls ja, dann kann der inhalt des gerade geprüften fensters in die spalte daneben geschrieben werden. falls auch nur ein wert innerhalb des gerade untersuchten fensters nicht im gewünschten bereich liegt sollen allerdings nullen geschrieben werden. das zeitfenster soll aber immer nur um eine zeile nach unten wandern.
ich bin halt nicht so firm und bräuchte relativ schnell eine lösung für mein problem. hoffe es kann mir jemand von den experten hier helfen. vielen dank schonmal.
dirk

Bild


Betrifft: AW: wertebereich prüfen von: ransi
Geschrieben am: 20.03.2005 19:20:41

hallo dirk

wo stehen die werte?
was sind das für werte?
wo ist die weitere spalte?
was ist das für ein zeitstempel?
was ist das für ein bestimmter bereich?

Du siehst also:
Fragen über Fragen....

am besten machst du mal ein beispiel.
Ich glaube nicht das jemand die lust hat das nachzubauen.

ransi


Bild


Betrifft: AW: wertebereich prüfen von: dirk
Geschrieben am: 21.03.2005 08:56:49

sorry, also anbei genauere info:

Date_Time Messwert
01.01.2004 00:00 2,2125
01.01.2004 00:15 1,9931
01.01.2004 00:30 2,2194
01.01.2004 00:45 2,0607
01.01.2004 01:00 2,1400
01.01.2004 01:15 2,0411
01.01.2004 01:30 2,0542
01.01.2004 01:45 2,1170
01.01.2004 02:00 1,9381
01.01.2004 02:15 2,1334
01.01.2004 02:30 1,8990
01.01.2004 02:45 2,1397
01.01.2004 03:00 1,9432


spalte 1: zeitstempel
spalte 2: messwert
bestimmter bereich: der wert in spalte 2 soll zwischen 1,5 und 4,5 liegen und dies für einen zeitraum von beispielsweise 2 stunden.

hoffe, dass diese info reicht. danke schonmal.

dirk


Bild


Betrifft: AW: wertebereich prüfen von: ransi
Geschrieben am: 21.03.2005 18:02:02



      
Hallo dirk
versuchs mal so:

Option Explicit


Public Sub test_2Stunden()
Dim zelle As Range
Dim bereich As Range
Dim w As Range
Range(
"c1:c10000").Value = Range("b1:b10000").Value
'Damit nachher nicht noch eine lF then reingebastelt werden muss...
'dann wirds nämlich kompliziert
'Nicht passende werte werden einfach mit  0 überschrieben
For Each zelle In Range("b1:b10000")
    
Set bereich = Range(zelle, zelle.Offset(8, 0)) 'zum anpassen die 8 auf 24 setzen
    If WorksheetFunction.CountIf(bereich, ">4.5") > 0 _
        
Or WorksheetFunction.CountIf(bereich, "<1.5") > 0 Then
        
For Each w In Range(zelle, zelle.Offset(8, 0)) 'zum anpassen die 8 auf 24 setzen
            w.Offset(0, 1) = 0
        
Next
    
End If
Next
'MsgBox bereich.Address
End Sub

ransi 


     Code eingefügt mit Syntaxhighlighter 3.0




Bild


Betrifft: AW: wertebereich prüfen von: dirk
Geschrieben am: 21.03.2005 20:24:32

hallo ransi,
vielen dank aber jetzt schreibt mir das macro nur nullen in die spalte, egal ob der bereich (also alle 8 zeilen) unterhalb, im oder über dem gesuchten messwertbereich liegt. es soll aber genau der messwert, bzw alle 8 werte, in die spalte geschrieben werden, falls er innerhalb des oberen und unteren limits liegt.
woran liegts?
dirk


Bild


Betrifft: AW: wertebereich prüfen von: dirk
Geschrieben am: 21.03.2005 20:45:42

es soll ja hinterher ein zusammenhängender zeitbereich herauskommen in dem die messwerte eingehalten wurden oder eben nicht, also z.b. 6,5 std ok und dann wieder 3 std ausserhalb des bereichs also 0 und dann wieder 7std innerhalb. ist es da überhaupt erforderlich alle 8 zeilen immer komplett zu überprüfen?


Bild


Betrifft: AW: wertebereich prüfen von: dirk
Geschrieben am: 22.03.2005 13:23:34

das makro schreibt jetzt die werte in die zweite spalte (hab eigentlich nur => + =< anstelle von > + < eingefügt), aber sobald der erste ausreisser dabei ist, werden die letzten acht zahlen, die ja eigentlich noch in ordnung waren, ebenfalls mit nullen überschrieben. man bräuchte also einen offset von acht zeilen anstelle nur einer zeile, sobald ein ausreisser auftritt.

andersherum ebenfalls, denn jetzt schreibt das makro erst ab dem achten wert der wieder im zielbereich liegt, den messwert in die zweite spalte und die acht werte zuvor, die eigentlich auch schon in ordnung gewesen sind, werden mit nullen überschrieben.
d.h. sobald nach einer reihe von werten, die nicht im gewünschten bereich liegen, der erste korrekte wert auftaucht, müsste ebenfalls ein offset von 8 zeilen drin sein.


Bild


Betrifft: AW: wertebereich prüfen von: ransi
Geschrieben am: 22.03.2005 16:38:08

hallo dirk

"das zeitfenster soll aber immer nur um eine zeile nach unten wandern."

annahme:
b10 ist ein ausreisser um 10:00
dann ist b2:B10 das erste geprüfte fenster mit einem treffer.
also c2:c10 = 0

jetzt wir das nächtste Fenster geprüft
b3:b11.
weil b10 in dem bereich liegt c3:c11 =0.

usw. bis das fenster b10:b18 geprüft wird welches das letzte fenster mit einem treffer ist.
also c10:c18 = 0.
logischerweise wird dann für den bereich c2:c18 in jede zelle eine 0 geschrieben.

kannst du mal ein beispiel machen aus dem man ersehen kann wie es sein soll.
deine beschreibung des problems habe ich wahrscheinlich nicht richtig verstanden.

ransi


Bild


Betrifft: AW: wertebereich prüfen von: dirk
Geschrieben am: 22.03.2005 19:29:54

hallo ransi,
tut mir leid, aber es ist auch nicht ganz einfach zu beschreiben. ich gebe mal ein beispiel:


Date_Time messwert b
01.01.2004 00:00 4,96 4,96
01.01.2004 00:15 3,92 3,92
01.01.2004 00:30 3,52 3,52
01.01.2004 00:45 3,36 3,36
01.01.2004 01:00 3,6 3,6
01.01.2004 01:15 3,52 3,52
01.01.2004 01:30 3,44 3,44
01.01.2004 01:45 3,04 3,04
01.01.2004 02:00 2,56 2,56
01.01.2004 02:15 2,72 2,72
01.01.2004 02:30 2,8 2,8
01.01.2004 02:45 2,88 2,88
01.01.2004 03:00 2,64 2,64
01.01.2004 03:15 2,56 2,56
01.01.2004 03:30 2,48 2,48
01.01.2004 03:45 1,84 0
01.01.2004 04:00 1,76 0
01.01.2004 04:15 1,84 0
01.01.2004 04:30 1,76 0
01.01.2004 04:45 1,68 0
01.01.2004 05:00 1,84 0
01.01.2004 05:15 2,24 2,24
01.01.2004 05:30 2,24 2,24
01.01.2004 05:45 2,56 2,56
01.01.2004 06:00 2,72 2,72
01.01.2004 06:15 2,8 2,8
01.01.2004 06:30 2,88 2,88
01.01.2004 06:45 2,64 2,64
01.01.2004 07:00 2,56 2,56
01.01.2004 07:15 2,48 2,48
01.01.2004 07:30 2,4 2,4

es soll also immer ein zusammenhängender zahlenbereich entstehen, in dem die randbedingungen einer oberen bzw. unteren grenze für das 'mindest'zeitfenster eingehalten werden. im oberen beispiel ist der erste bereich also 3,5 std. dann 1,25 std unterhalb des limits ( limit liegt in diesem fall bei 2 stunden zeitfenster und 2,0 als messwertgrenze ), um dann wieder die kriterien einzuhalten.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung bei Makro-Ausführung"