Hallo Zusammen,
Ich habe folgendes Problem,
Ich habe 2 Wertelisten:
Werteliste 1(Tabellenblatt 1):
Spalte A: Datum
Spalte B: Laufzeit/h
Spalte C: Kraft/kN
Spalte D: Höhenänderung/%
Spalte E: Innentemperatur/°C
Spalte F: Außentemperatur/°C
Werteliste 2 (Tabellenblatt 2):
Spalte A: Laufzeit/h
Spalte B: Innentemperatur/°C
Spalte C: Höhenänderung_Korrektur/%
Ich muss nun den Wert Höhenänderung(Werteliste1|SpalteD) bei der Temperatur(Werteliste1|SpalteE) um den Wert Höhenänderung_Korrektur(Werteliste1|SpalteC)korrigieren.
D.h. Höhenänderung(Werteliste1|SpalteD)_Temp - Höhenänderung_Korrektur(Werteliste1|SpalteC)_Temp
Da die Werte der beiden Wertelisten nicht immer bei exakt der gleichen Temperatur vorliegen, muss ich den entsprechnden Wert aus der Werteliste 2 interpolieren.
Dazu wollte ich mir zu einer Innentemperatur(Werteliste1|SpalteE) den nächst niedrigeren Wert aus und den nächst höheren Wert aus Werteliste 2 Spalte B suchen und mittels Geradengleichung den zwischenwert berechnen.
Um die Werte zu suchen, habe ich an folgendes Makro gedacht:Sub grossklein()
Dim lzeile As Long
Dim dklein As Double
Dim dgross As Double
Dim letztezeile As Long
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
MsgBox letztezeile
With ThisWorkbook.Worksheets("Tabelle1")
For j = 1 To 3388
If Trim(.Range("F" & j).Value) <> "" Then
If IsNumeric(.Range("F" & j).Value) Then
For lzeile = 2 To 4000
If CDbl(.Range("F" & j).Value) >= CDbl(Worksheets("Korrektur-Werte").Cells( _
_
lzeile, 2).Value) Then
dklein = CDbl(Worksheets("Korrektur-Werte").Cells(lzeile, 2).Value)
End If
If CDbl(.Range("F" & j).Value) <= CDbl(Worksheets("Korrektur-Werte").Cells( _
_
lzeile, 2).Value) Then
dgross = CDbl(Worksheets("Korrektur-Werte").Cells(lzeile, 2).Value)
Exit For
End If
Next lzeile
End If
End If
Range("I" & j).Value = dklein
Range("J" & j).Value = dgross
Next j
End With
End Sub
Das funktioniert auch, allerdings stürzt Excel (ich denke auf Grund der vielen Datensätze) ab.
Weiß jemand einen einfacheren Weg, bzw. einen Weg, bei dem Excel nicht überfordert ist?
Besten Dank! Schon mal,
Gruß
Florian Rave |