Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Do-While-Schleife

Do-While-Schleife
31.01.2017 14:34:16
Toby
Hallo zusammen,
ich stehe mit meinen überschaubaren VBA-Kenntnissen leider vor folgendem Problem und hoffe auf eure Hilfe.
In einer Quelldatei sind in einer Spalte alphabetisch sortiert die Buchstaben A, C, D und E eingetragen. Bisher habe ich mit einer Do-While-Schleife die Anzahl aller A-, C- und D-Werte abgreifen können um einen Zähler um jeweils 1 zu erhöhen, sofern ein entsprechendes Element vorhaben war. E-Elemente waren für mich nicht von Relevanz. Nun ist es leider so dass in der Quelledatei auch B’s vorkommen seit Neuem. Da diese aber auch nicht von Relevanz sind für mich kommt es aber neuerdings zu dem Problem, dass die Do-While-Schleife nach allen A-elementen stoppt, und die Cs und Ds nicht mehr berücksichtigt. Ich vermute es liegt an der alphabetischen Sortierung.
Anbei mein Code:
ZeilenQuelle = 0
With Workbooks(Datei).Worksheets(1)
Do While .Cells(TitelzeileQuelle + 1 + ZeilenQuelle, TriggerspalteQuelle) = "A" Or .Cells(TitelzeileQuelle + 1 + ZeilenQuelle, TriggerspalteQuelle) = "C" Or .Cells(TitelzeileQuelle + 1 + ZeilenQuelle, TriggerspalteQuelle) = "D"
ZeilenQuelle = ZeilenQuelle + 1
Loop
End With

Ich hoffe auf eure Hilfe und danke euch im Voraus!
LG

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do-While-Schleife
31.01.2017 14:52:50
Max2
Deine Bedingungen solltest du in einem If Sätzen oder in Cases ausdrücken.
Deine Do While Schleife solltest du ändern.
Mache eine Do Until Schleife oder lasse es bei Do While aber führe Sie solange aus bis du am ende des Blattes angelangt bist
lzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
i = 1
Do Until i >= lzeile
If .Cells(Titelzeile + 1 + ZeilenQuelle, TriggerspalteQuelle) = "A" Then
ZeilenQuelle = ZeilenQuelle + 1
ElseIf ...
ElseIf
End If
i = i + 1
Loop 

AW: Do-While-Schleife
31.01.2017 17:23:07
Toby
Vielen Dank für die schnelle Antwort und die Mühe.
Leider hat es noch nicht funktionert, da der Zähler nicht durchzählt sondern auf 0 verharrt. Mir ist es schleierhaft warum dem so ist.
Anzeige
AW: Do-While-Schleife
01.02.2017 02:01:38
Piet
Hallo Nax2,
der Effekt ist keineswefs schleierhaft, die Antwort siehst du im Code selbst, und zwar hier:
If .Cells(Titelzeile + 1 + ZeilenQuelle, TriggerspalteQuelle) = "A" Then
ZeilenQuelle = ZeilenQuelle + 1
ElseIf ...

Im Klartext, der Zaehler ZeilenQuelle wird immer nur weitergezaehlt wenn er ein "A" findet!
Ansonsten bleibt er auf Null stehen. So eindach ...
öfg Piet
AW: Do-While-Schleife
03.02.2017 14:43:54
Toby
Hallo nochmals,
vielen Dank Max2 und Piet für eure schnelle Hilfe. War leider 2 Tage verhindert, daher die späte Antwort.
Mein Problem bei der Logik ist, dass vom Programm ja durchaus diverse A's gefunden werden sollte, da sie ja zweifelsohne im durchsuchenden Bereich vorkommen. Lediglich das "ZeilenQuelle+1" geschieht dennoch nicht, was ich nicht verstehe.
Danke euch nochmals vorab für die Hilfe und viele Grüße
Toby
Anzeige
AW: Do-While-Schleife
03.02.2017 15:14:58
Max2
Schon probiert mit

If .Cells(xy).Value = "A" Then

AW: Do-While-Schleife
03.02.2017 15:41:38
Toby
Auch das hatte ich schon versucht leider...
AW: Do-While-Schleife
03.02.2017 15:45:19
Max2
Wäre es dir möglich eine Beispiel Datei reinzustellen?

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige