Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergleichsoperator erweitern

Forumthread: Vergleichsoperator erweitern

Vergleichsoperator erweitern
04.06.2008 12:17:29
christian
Hallo,
ich habe für eine Spalte folgende Plausibilisierung:
wenn der Folgewert größer-gleich 3 des Vorwertes ist, wird in der Folgezelle der Vorwert eingetragen.
Dafür habe ich folgenden Code:

Application.ScreenUpdating = False
Dim i As Long
Cells(3, 3).Value = Cells(3, 3).Value * 1   'Plausibilisierung für die Temperatur
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) >= 3 * Abs(Cells(i, 3).Value) Then _
Cells(i + 1, 3).Value = Cells(i, 3).Value
Next i
If Abs(Cells(i, 3).Value) >= 3 * Abs(Cells(i - 1, 3).Value) Then _
Cells(i, 3).Value = Cells(i - 1, 3).Value


Jetzt möchte zudem absichern das er ebenso den Vorwert einträgt, falls der Folgewert kleiner-gleich 3 des Vorwertes ist.
Was muss ich ändern?
christian

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Vergleichsoperator erweitern
04.06.2008 13:56:10
christian
in der VBA-Hilfe hab ich etwas mit der ElseIf Bedingung gefunden, allerdings krieg ichs nicht hin.

AW: Vergleichsoperator erweitern
04.06.2008 13:57:00
fcs
Hallo Christian,
wenn die Temperatur-Werte in °Celsius angegeben sind hat deine Methode extreme Problem mit kleinen Werten um 0°C.
Da solltest du dann schon die Temperaturen in K angeben/umrechnen und den Faktor 3 runtersetzen. Dann sind negative Werte automatisch falsch und es wird erst in der Cryo-Technik bei der Verflüssigung von Wasserstoff und Helium nahe dem absoluten Temperatur 0-Punkt problematisch.
ggf. ist die Differenz zwischen zwei Messwerten das bessere Kriterium.
Gruß
Franz

Sub aaPlausib()
Application.ScreenUpdating = False
Dim i As Long
Cells(3, 3).Value = Cells(3, 3).Value * 1   'Plausibilisierung für die Temperatur
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) >= 3 * Abs(Cells(i, 3).Value) _
Or Abs(Cells(i + 1, 3).Value) * 3  30 Then
Cells(i + 1, 3).Value = Cells(i, 3).Value
End If
Next i
Application.ScreenUpdating = True
End Sub


Anzeige
Super Idee!
04.06.2008 14:17:00
christian
Das mit dem Differenzkriterium ist eine super Idee (schade das ich da nich drauf gekommen bin)
So funktionierts am besten. Danke!
christian

AW: Vergleich erweitern
04.06.2008 14:10:00
Luc:-?
Tja, Christian,
das soll einer verstehen...?! Wenn du bisher den Folgewert durch den Vorwert ersetzt, wenn er ≥ dem 3Fachen des Vorwerts ist, soll er nun auch dann durch den Vorwert ersetzt wdn, wenn er ≤ dem 3Fachen des Vorwerts ist? Dann ist die If-Konstruktion ja überflüssig und du kannst gleich den Vorwert übernehmen! Da machst du wohl einen Denkfehler! Dahingg würde &le 1/3 des Vorwertes sinnvoller sein.
Dazu könntest du dann auch ein If-Konstrukt der Art If ... Or ... Then ... benutzen.
Gruß Luc :-?
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige