Anzeige
Archiv - Navigation
1580to1584
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige