Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

While-Schleife mit Or-Operator

Forumthread: While-Schleife mit Or-Operator

While-Schleife mit Or-Operator
16.09.2017 18:57:12
Falko
Hallo zusammen,
ich versuche gerade meine erste While-Schleife zu programmieren. Auf das wesentlichste reduziert, sieht sie so aus:
Dim intRow As Integer
intRow = 3
Do While Cells(intRow, 1).Value Kunde_Auftragsnummer Or intRow 1000
intRow = intRow + 1
Loop
Die Schleife enthält zwei Bedinungen. Die Schleife funktioniert, wenn jeweils nur eine der Bedingungen vorhanden ist. Kombiniert mit dem Or-Operator komme ich aber in den Überlauf.
Wo liegt hier der Fehler?
Danke und Gruß
Falko
PS: Eigentlich ist die zweite Bedinungen "intRow kleiner als 1000". Aber da das Eingabeformular hier den "kleiner als" Operator nicht zulässt hab ich geschrieben
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
And nicht Or ! o.T.
16.09.2017 19:05:39
Sepp
Gruß Sepp

AW: While-Schleife mit Or-Operator
17.09.2017 19:12:32
Daniel
HI
ich geh mal davon aus, dass du in der Spalte A die Kundennummer suchst, aber nicht weiter als Zeile 1000 suchen willst.
das geht auf viele Arten, und deine ist die schlechteste, denn
eine Logik-Verknüpfung mit bzw NICHT sind immer etwas tricky.
einfacher wirds, wenn man die Logik nicht negativ () sondern postiv aufbaut (=), in dem du DO UNTIL verwendest:
Do Until Cells(intRow, 1).Value = Kunde_Auftragsnummer Or intRow = 1000
intRow = intRow + 1
Loop

Besser wäre jedoch die For-Next-Schleife mit abruch, damit ersparst du dir nämlich das Hochzählen des Schleifenzählers:
For i = 3 to 1000
if Cells(intRow, 1).Value = Kunde_Auftragsnummer then Exit For
Next

oder du nimmst die VBA-Funktionen .FIND bzw Worksheetfunction.Match um den Wert zu finden, dann brauchst du keine Schleife in deinem Code (die Schleife läuft dann VBA-Intern)
Dim Zelle as range
set Zelle = range("A3:A1000").find(what:=Kunde_Auftragsnummer, lookat:=xlwhole, lookin:= _
xlvalues)
If not Zelle is Nothing then i = Zelle.Row
Gruß Daniel
Anzeige
AW: While-Schleife mit Or-Operator
17.09.2017 20:04:55
Gerd
Hallo Falko!
Dim Zeile As Long
Zeile = 3
Do While Zeile  Kunde_Auftragsnummer
Zeile = Zeile + 1
Loop
Gruß Gerd
;

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