Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
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
Inhaltsverzeichnis

VBA-Code: Schleife wird nicht durchlaufen...

VBA-Code: Schleife wird nicht durchlaufen...
21.11.2014 10:16:07
Florian
Hallo zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code: Schleife wird nicht durchlaufen...
21.11.2014 10:50:20
Daniel
Hi
Vermutlich ist dein Suchbegriff (T1) nicht im Suchbereich (Worksheets("Datenanalyse").Columns(3))
vorhanden.
damit wird in:

Set Zelle = Worksheets("Datenanalyse").Columns(3).Find(T1,...)

der der Variablen Zelle der Wert NOTHING zugewiesen, was im Folgecode dann zu einem Fehler führt, weil dieser mit dem Wert NOTHING nicht arbeiten kann:
   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
du hast die Sicherheitsabfrage
If Not Zelle Is Nothing Then

zwar drin, aber die ist falsch platziert und kommt zu spät.
Sie müsste eigentlich direkt nach dem .FIND erfolgen.
Gruß Daniel

Anzeige
AW: VBA-Code: Schleife wird nicht durchlaufen...
21.11.2014 11:46:25
Florian
Hi Daniel,
Danke für den Hinweis!
Du hast recht! Aber daran ist es nicht gelegen (Der Wert wurde gefunden!)
Das Problem war, dass innerhalb der DateDiff-Funktionen auf .Value zurückgegriffen wurde!
Jetzt funktioniert es! Vielen Dank!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige