VBA-Code: Schleife wird nicht durchlaufen...
21.11.2014 10:16:07
Florian
ich habe mir eine kleine Funktion in VBA geschrieben; hierbei soll eine Schleife durchlaufen werden, solange ein gewisses Datum vorliegt.
Während dieses Durchlaufs sollen, falls "bessere" Lösungen gefunden werden, diese jeweils gespeichert werden...Leider wird die Schleife nicht durchlaufen und als Fehler wird #WERT! in Excel zurückgegeben. Hat jemand Hilfe für mich, ich bräuchte dringendst eine Lösung!
Danke vorab!
Flo
Function TEST(ByVal T1 As String, _
ByVal T2 As Date, _
ByVal X As Double) As Double
Dim Zelle As Variant
Dim B As String
Dim A As Double
Dim T_alt As Date
Dim X_alt As Double
'Gleiches Datum suchen
Set Zelle = Worksheets("Datenanalyse").Columns(3).Find(T1, lookat:=xlWhole, LookIn:= _
xlValues)
MsgBox (Zelle.Address)
'Initialisierung
T_alt = Worksheets("Datenanalyse").Cells(Zelle.Row, 8).Value
X_alt = Worksheets("Datenanalyse").Cells(Zelle.Row, 4).Value
A = Worksheets("Datenanalyse").Cells(Zelle.Row, 13).Value
If Not Zelle Is Nothing Then
Do
' Falls Kriterien für "T-" erfüllt und Annäherung an T2:
If DateDiff("y", Worksheets("Datenanalyse").Cells(Zelle.Row, 8).Value, T2) >= 0 And _
DateDiff("y", T_alt, Worksheets("Datenanalyse").Cells(Zelle.Row, 8).Value) >= 0 Then
' Falls Kriterien für "X-" erfüllt und Annäherung an X:
If Worksheets("Datenanalyse").Cells(Zelle.Row, 4).Value X_alt Then
' Dann neue "bessere" Lösung übernehmen!
A = Worksheets("Datenanalyse").Cells(Zelle.Row, 13).Value
T_alt = Worksheets("Datenanalyse").Cells(Zelle.Row, 8).Value
X_alt = Worksheets("Datenanalyse").Cells(Zelle.Row, 4).Value
' Falls identisches Laufzeitende und identischer Strike, kann Schleife _
verlassen werden!
If DateDiff("d", Worksheets("Datenanalyse").Cells(Zelle.Row, 8), T2).Value = 0 _
And Worksheets("Datenanalyse").Cells(Zelle.Row, 4).Value = X Then
Exit Do
End If
End If
End If
' Nächste Zeile durchsuchen:
Set Zelle = Worksheets("Datenanalyse").Cells(Zelle.Row + 1, 3)
' Abbruch, wenn anderes Datum:
MsgBox (Zelle.Address)
Loop Until Worksheets("Datenanalyse").Cells(Zelle.Row, 3).Value Worksheets(" _
Datenanalyse").Cells(Zelle.Row - 1, 3).Value
TEST = A
Else
TEST = -1
End If
End Function