Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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!
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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