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

Ist diese Plausibilisereung korrekt erstellt ????

Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 09:59:00
christian
Hallo,
Ich habe folgende Aufagbe: In einer Spalte stehen z.B. folgende Messwerte für die Temperatur:
4
4
45
4
4
5
oder auch:
-2
-2
-23
-2
-3
Die Werte werden alle zehn sekunden aufgezeichnet.
Ich möchte die gesamte Spalte plausbilisieren, das heißt wenn ein Wert größer als das doppelte des vorwertes ist (auch bei minusgraden, nach oben und nach unten) soll der vorwert eingetragen werden.
Ich habe folgenden Ansatz:

Sub test()
Application.ScreenUpdating = False
Dim vorwert as double
Dim i As Long
For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 1).value > 2*vorwert then cells (i, 1) = vorwert
End If
Next i
Application.ScreenUpdating = True
End Sub


Allerdings fehlt mir noch die Beschreibung damit das auch bei negativen werten (minusgraden) funktioniert.
Wer kann helfen?
Danke
christian

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 10:08:44
Renee
Hi Christian,
Dein Vorwerte wird ja im Code gar nie gesetzt?
So?

Sub test()
Application.ScreenUpdating = False
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 3 Step -1
If Abs(Cells(i, 1).Value) > 2 * Abs(Cells(i - 1, 1).Value) Then Cells(i, 1).Value =  _
Cells(i - 1, 1).Value
Next i
Application.ScreenUpdating = True
End Sub


GreetZ Renée

AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 10:20:35
christian
Hallo,
ich hab deinen code übernommen und die zellen angepasst. Es kommt aber immer Laufzeitfehler ´13´
christian

AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 10:23:00
Renee
Hi Christian,
Stell eine Beispielmappe mit 'echten' Messwerten ins Forum.
Es kommt aber immer Laufzeitfehler ´13´ deutet darauf hin, das du ev. statt Zahlen- Textwerte vorliegen hast. Ist das so?
GreetZ Renée

Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 10:25:00
christian
Hallo,
Stimmt das mit dem Text ist korrekt, die Daten wurden ursprünglich in txt aufgezeichnet.
Wie müsste die Änderung aussehen?
christian

AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 10:37:00
Renee
Hi Christian,
Die zusätzliche Codezeile, wandelt zuerst in Text in Zahl um:

Sub test()
Application.ScreenUpdating = False
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
Cells(i, 1).Value = Cells(i, 1).Value * 1
If Abs(Cells(i, 1).Value) > 2 * Abs(Cells(i - 1, 1).Value) Then Cells(i, 1).Value =  _
Cells(i - 1, 1).Value
Next i
Application.ScreenUpdating = True
End Sub


GreetZ Renée

Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:12:02
Reinhard
Hi Christian,
da wird C3 mit C2 verglichen was ja Fehler bringen muß da die Überschrift in C2 nicht in eine Zahl gewandelt werden kann.
Lasse also die For-Schleife nicht bis 2 sondern bis 4 runterlaufen.
Grundsätzlich habe ich dein "nach oben und unten" in der Ausgangsfrage noch nicht verstanden,
was soll denn aus dieser Reihe werden:
3
3
100
4
4
Dies:
3
3
3
4
4
Oder dies:
3
3
4
4
4
Gruß
Reinhard

Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:13:00
christian
hallo Reinhard,
es sollte ersteres draus werden.
christian

AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:27:59
Reinhard
Hi Christian,

Option Explicit
Sub test()
Application.ScreenUpdating = False
Dim i As Long
For i = Range("C65536").End(xlUp).Row To 4 Step -1
Cells(i, 3).Value = Cells(i, 3).Value * 1
If Abs(Cells(i, 3).Value) > 2 * Abs(Cells(i - 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i - 1, 3).Value
Next i
If Abs(Cells(i, 3).Value) > 2 * Abs(Cells(i + 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i + 1, 3).Value
Application.ScreenUpdating = True
End Sub


Gruß
Reinhard

Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:33:00
christian
danke so gehts.

AW: Nachtrag
23.05.2008 11:47:54
christian
wenn ich allerdings "größer-gleich" einfüge korrigiert er die werte nicht, was mache ich falsch?
Tabelle angehängt: https://www.herber.de/bbs/user/52575.xls

AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:12:33
Renee
Hi Christian,

Sub test()
Application.ScreenUpdating = False
Dim i As Long
For i = Range("C65536").End(xlUp).Row To 4 Step -1
Cells(i, 3).Value = Cells(i, 3).Value * 1
If Abs(Cells(i, 3).Value) > 2 * Abs(Cells(i - 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i - 1, 3).Value
Next i
Application.ScreenUpdating = True
End Sub


GreetZ Renée

Anzeige
AW: Ist diese Plausibilisereung korrekt erstellt ?
23.05.2008 11:30:50
christian
So gehts (vorerst),
im ganz sicher zu gehen möchte ich gern "größer gleich" angeben.
(so das er nicht:
2
4
6
8
...
stehen lassen würde)
Mit dem "Gleicheitszeichen hinter dem "größer" macht ers aber nich, hab ich einen denkfehler?
christian

Bahnhof!? insufficient information (owT)
23.05.2008 11:33:00
Renee

AW: Bahnhof!? insufficient information (owT)
23.05.2008 11:44:00
christian
ich habs ins modul so eingefügt:

Sub test()
Application.ScreenUpdating = False
Dim i As Long
For i = Range("C65536").End(xlUp).Row To 4 Step -1
Cells(i, 3).Value = Cells(i, 3).Value * 1
If Abs(Cells(i, 3).Value) >= 2 * Abs(Cells(i - 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i - 1, 3).Value
Next i
Application.ScreenUpdating = True
End Sub


wenn ich aber vorher
2
4
6
8
einschreibe korrigiert er es nicht zu
2
2
2
2
ich verstehs nicht.
christian

Anzeige
Formulier deine Regeln neu...
23.05.2008 11:51:00
Renee
Christian,
Es war von einem Vorgänger die Rede.
Jetzt baut die Regel auf dem Nachfolger auf!
Irgendwie ist mir schleierhaft, warum du aufgezeichnete Daten so manipulieren (nicht... Ausreisser korrigieren)!
Kannst du statt mit fiktiven Werten, nicht mal praxisnahe Werte erstellen, die Aussreisser zeigen?
Ist es dir nicht möglich die Regeln, klar einfach in verständlichen Sätzen zu formulieren?
GreetZ Renée

AW: Bahnhof!? insufficient information (owT)
23.05.2008 12:12:00
Reinhard
Hi Christian,
so kriegste deine 2er Reihe in dem Beispiel.

Option Explicit
Sub test()
Application.ScreenUpdating = False
Dim i As Long
Cells(3, 3).Value = Cells(3, 3).Value * 1
For i = 3 To Range("C" & Rows.Count).End(xlUp).Row - 1
Cells(i + 1, 3).Value = Cells(i + 1, 3).Value * 1
If Abs(Cells(i + 1, 3).Value) >= 2 * Abs(Cells(i, 3).Value) Then _
Cells(i + 1, 3).Value = Cells(i, 3).Value
Next i
If Abs(Cells(i, 3).Value) >= 2 * Abs(Cells(i - 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i - 1, 3).Value
Application.ScreenUpdating = True
End Sub


Gruß
Reinhard

Anzeige
AW: Bahnhof!? insufficient information (owT)
23.05.2008 13:28:00
christian
Ich danke dir.
Wünsche schönes Wochenende.
christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige