Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
160to164
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
160to164
160to164
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For-Schleife fehlerhaft?

For-Schleife fehlerhaft?
19.09.2002 13:37:04
Tobias Wutschka
Hallo FOrum, erstmal danke für die bisherige Hilfe, bei Hans konnte ich mich nicht direkt bedanken, weil der Beitrag, als ich ihn gelesen habe schon im Archiv war...

Nun zum Problem:
Die folgende Struktur wird bei einer while-Schleife durchlaufen, am Ende der Schleife ist ein Zähler der die TEST = True zählt, aber irgendwie gibt er mir in der MsgBox1 (siehe Kommentar) noch TEST = false aus, aber in der MsgBox3 am Ende der Schleife ist TEST dann doch wieder true. Woran liegt das? Es liegt bestimmt an der for-Schleife, ich glaube damit werd ich mich nie anfreunden...

If TEST = True Then
If P_Var = True And TEST = True Then
TEST = False
P_Typ = ""
Varianten = ListBox4.ListCount
MsgBox "abgelehnt" & TEST 'MsgBox1
For i = 0 To Varianten
If ListBox4.List(i, 0) = Left(Sheets(1).Cells(Zeile, 6), 6) Then
TEST = True
MsgBox ListBox4.List(i, 0) & " " & Left(Sheets(1).Cells(Zeile, 6), 6)
Else
TEST = False
End If
Next i
End If
End If
MsgBox TEST & Zeile 'MsgBox3

Danke im voraus für eure Hilfe

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

Betreff
Datum
Anwender
Anzeige
Re: For-Schleife fehlerhaft?
19.09.2002 14:10:27
MAlexander
Moin,

Du vergleichst also alle Listboxen mit einer einzigen Zelle.

Wenn TEST zu Anfang FALSE ist, dann bringt er Dir in der MSGBOX auch FALSE
Wenn P_Var false ist, bringt er Dir ebenfalls in der MSGBOX false
Wenn P_Var true ist, dann geht TEST zunächst auf false
In der For-Schleife geht TEST bei Gleichheit auf true andernfalls auf false
Wenn Du 1000000 Schleifendurchgänge insgesamt hast, von denen 999999 Gleichheit feststellen und der 1000000. Durchgang false bringt, dann zeigt Dir die MSGBOX natürlich false an.
Deine Konstruktion liefert Dir immer den TEST-Wert der FOR-Obergrenze und daher fürchte ich, daß bei ListBox4.List(1000000, 0) eben keine Gleichheit herrscht.

Beschreib mal genauer was Du denn überhaupt erreichen willst.

MAlexander

Anzeige
Re: For-Schleife fehlerhaft?
19.09.2002 14:27:13
Tobias Wutschka
Diese ganze Schleife dient dazu gewisse Kriterien auszuwerten, welche z.B. über die Listbox ausgewählt werden. Da auch mehrere Kriterien in der Listbox gewählt werden können frage ich diese über die Schleife ab. Das kann man vielleicht umgehen, mit gehört Element zur Liste dann TEST = true sonst false.
Deinen Ausführungen kann ich folgen, hab zum Glück nur 109 Zeilen über die die While Schleife läuft. Davon wären 9 Zeilen vor dem Durchlaufen der If Else Anweisung True, der Rest ist False, jedoch bleiben diese 9 Zeilen true. Ist es dann sinnvoll eine Do Loop Schleife zu machen?
Mal grob gesagt:
Do Until i = Varianten
if ListBox4.List(i, 0) = Left(Sheets(1).Cells(Zeile, 6), 6) Then
TEST = true
Exit Do
ENd if

i = i + 1

Loop
Werde ich mal probieren, vielleicht fällt dir noch eine andere Lösung ein

Anzeige
Klappt!
19.09.2002 14:37:40
Tobias Wutschka
Hallo es funktioniert! Danke für die Hilfe.
Für die Interessierten noch der Code:
If TEST = True Then
If P_Var = True And TEST = True Then
TEST = False
P_Typ = ""
Varianten = ListBox4.ListCount
'MsgBox "abgelehnt" & TEST
i = 0
Do Until i = Varianten
If ListBox4.List(i, 0) = Left(Sheets(1).Cells(Zeile, 6), 6) Then
TEST = True
Exit Do
End If
i = i + 1
Loop
End If
End If

Anzeige
Re: For-Schleife fehlerhaft?
19.09.2002 15:02:09
MAlexander
Ach, gegen Schleifen ist überhaupt nichts einzuwenden und dein
Beispiel ist ja auch ok.

Ich mach es vom Prinzip her genauso.
Ist immer nur die Frage, was man erreichen will.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige