Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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 Schleifen

Do While Schleifen
14.05.2020 16:01:12
Dark
Hallo zusammen,
Mit Schleifen kenne ich mich noch nicht so gut aus und hoffe, ihr könnt mir da weiterhelfen.
In meiner Datei (https:\/\/www.herber.de/bbs/user/137549.xlsm) habe eine "Do While" Bedingung für eine Kontrollschleife formuliert. Damit möchte ich Kontrollen implementieren, die die Einhaltung unterschiedlicher Kriterien prüfen und Fehlermeldungen herausgeben, wenn diese nicht erfüllt werden. Dies soll auch dann noch weiter funktionieren, wenn Zeilen gelöscht oder neu eingefügt werden.
Beispielsweise habe ich nun 2 Kontrollbeispiele (es werden aber wahrscheinlich bis zu 100 Kontrollen). Für sich genommen und isoliert betrachtet funktioniert die Schleife zur ersten Kontrolle (siehe Beispiel 1 zur ersten Kontrolle) .
Jetzt möchte ich die zweite Kontrolle ergänzen und nachher auch mehrere Überprüfungen mit anderen Kriterien durchlaufen lassen. Allerdings funktioniert die Schleife dann nicht. Sie überprüft lediglich, ob die erste Kontrolle erfüllt ist und endet dann. Allerdings bräuchte ich eine Schleife, die die Kontrollen zusammenführt (wäre so was wie in Beispiel 2).
Daher wollte ich fragen, ob ich die Kontrollen zusammenführen kann und wie die Schleife in diesem Fall dann aussehen müsste?
Beispiel 1 zur ersten Kontrolle:
Public Sub Beispielprogramm_DynamischeZeilen1()
Dim intRow As Integer
intRow = 5
Do While Left(Worksheets("Tabelle1").Cells(intRow, 2), 2)  "KR"
If Worksheets("Tabelle1").Cells(intRow, 3) = "" And _
Worksheets("Tabelle1").Cells(intRow, 4) = "" Then
MsgBox "Achtung: Inkonsitente Angaben(1) & vbNewLine & vbNewLine" _
& "Fehlermeldung: " & vbNewLine _
& "Unschlüssige Angaben." & vbNewLine & vbNewLine
Exit Do
Else
intRow = intRow + 1
End If
Loop
End Sub

Beispiel 2: Zusammengeführte Kontrollen
Public Sub Beispielprogramm_DynamischeZeilen1()
Dim intRow As Integer
intRow = 5
Do While Left(Worksheets("Tabelle1").Cells(intRow, 2), 2)  "KR"
If Worksheets("Tabelle1").Cells(intRow, 3) = "" And _
Worksheets("Tabelle1").Cells(intRow, 4) = "" Then
MsgBox "Achtung: Inkonsitente Angaben(1) & vbNewLine & vbNewLine" _
& "Fehlermeldung: " & vbNewLine _
& "Unschlüssige Angaben." & vbNewLine & vbNewLine
Exit Do
Else
intRow = intRow + 1
End If
Loop
End Sub
Public Sub Beispielprogramm_DynamischeZeilen2()
Dim intRow As Integer
intRow = 5
Do While Left(Worksheets("Tabelle1").Cells(intRow, 2), 2)  "KR"
If Worksheets("Tabelle1").Cells(intRow, 3) = "x" And _
Worksheets("Tabelle1").Cells(intRow, 4) = "x" Then
MsgBox "Achtung: Inkonsitente Angaben2! & vbNewLine & vbNewLine" _
& "Fehlermeldung: " & vbNewLine _
& "Unschlüssige Angaben." & vbNewLine & vbNewLine
Exit Do
Else
intRow = intRow + 1
End If
Loop
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do While Schleifen
14.05.2020 17:49:08
onur
Do While Left(Worksheets("Tabelle1").Cells(intRow, 2), 2) "KR" AND ............'Nächste Bedingung
Je nachdem, was du prüfst, musst du natürlich OR nehmen.
AW: Do While Schleifen
14.05.2020 17:53:45
Dark
Hi Onur,
erstmal vielen Dank für deine Antwort.
Im Grunde möchte ich die beiden Bedingungen zusammenführen, wie im Beispiel 2 dargestellt. Allerdings funktioniert das nicht, wenn ich die beiden If-Bedingungen integriere. Zumal dementsprechend auch 2 unterschiedliche Fehlermeldungen generiert werden sollen.
VG
AW: Do While Schleifen
14.05.2020 18:11:03
onur
Ich glaube, für deinen Fall ist "Do While" nicht das Richtige, da "Do While" beim ERSTEN Nichtzutreffen der Bedingung die Schleife verlässt.
Du brauchst eher eine "For Next"-Schleife und zwei "If"-Schleifen:
Public Sub Beispielprogramm_DynamischeZeilen1()
Dim intRow As Integer
intRow = 5
With Worksheets("Tabelle1")
For intRow = 5 To 5000 'als Beispiel bis Zeile 5000
If Left(.Cells(intRow, 2), 2)  "KR" Then
If Cells(intRow, 3) = "" And .Cells(intRow, 4) = "" Then
MsgBox "Achtung: Inkonsitente Angaben(1) & vbNewLine & vbNewLine" & " _
Fehlermeldung: " & vbNewLine & "Unschlüssige Angaben." & vbNewLine & vbNewLine
Exit For
End If
End If
Next intRow
End With
End Sub

Anzeige
AW: Do While Schleifen
14.05.2020 18:45:03
Dark
Das Problem dabei ist, dass der Zeilenbereich dynamisch bleiben muss und die Zeilen dabei den jeweiligen Bereichen zuordnen muss. Er muss also erkennen können, welche Zeilen geprüft werden und diese dem Bereich zuordnen und darauf aufbauend dann die Fehlermeldung generieren. Ich weiß nicht, wie ich das bei der For Next Schleife integrieren kann.
AW: Do While Schleifen
14.05.2020 18:49:33
onur
Kann dir nicht folgen.
"dass der Zeilenbereich dynamisch bleiben muss und die Zeilen dabei den jeweiligen Bereichen zuordnen muss. Er muss also erkennen können, welche Zeilen geprüft werden und diese dem Bereich zuordnen und darauf aufbauend dann die Fehlermeldung generieren" ?
Was an deinem alten Code hat das denn ermöglicht?
"...dynamisch bleiben muss und die Zeilen dabei den jeweiligen Bereichen..." ?
Welche Zeilen welchen Bereichen? Ich sehe keine Bereiche.
Anzeige
AW: Do While Schleifen
14.05.2020 18:53:56
Dark
In der Datei ist das ganz gut zu erkennen.
Mit dynamisch meine ich, dass das Programm die Zeilen durchläuft und prüft, ob die Bedingungen eingehalten werden. Und das dann auch, wenn Zeilen gelöscht oder neu hinzugefügt werden.
AW: Do While Schleifen
14.05.2020 20:15:47
onur
Sind denn IMMER je 5 Einträge?
AW: Do While Schleifen
14.05.2020 21:06:37
Dark
Nein, leider nicht.
VG
AW: Do While Schleifen
14.05.2020 21:18:15
onur
Sorry, aber du meldest dich hier wegen einem "Do While"-Problem, aber dein Code würde auch mit einer funktionierenden Schleife auf keinen Fall funktionieren, denn der Aufbau und das Makro taugen nix.
Nur SO kann er funktionieren:
https:\/\/www.herber.de/bbs/user/137562.xlsm
Anzeige
AW: Do While Schleifen
14.05.2020 22:15:02
Dark
Darum ging es ja eben auch.
Wie ich zuvor erwähnt habe, kenne ich mich mit Schleifen nicht so gut aus. Ich habe auch erwähnt, dass der Makro isoliert für das erste Beispiel funktioniert. Es ging lediglich um die Zusammenführung weiterer Kontrollen und deren Bedingungen. Und da ich es als Do While Schleife programmiert habe, war es auch ein solchen Problem.
Ich habe mir deinen Lösungsvorschlag angesehen. Die erste Kontrolle funktioniert, wie bei mir. Wurden keine Angaben (C und D = "") getätigt, erscheint die Fehlermeldung. Allerdings erfolgt auch bei deinem Makro keine Überprüfung der zweiten Kontrolle (C und D = "x"). Zudem funktioniert dein Makro auch bei der ersten Kontrolle nicht, wenn Zeilen neu hinzugefügt werden. Und wie ich schon mehrmals erwähnt habe, war genau das mein Ziel.
Sorry, aber dein Makro und Aufbau taugen leider auch nix.
Anzeige
AW: Do While Schleifen
14.05.2020 22:24:27
onur
Das war nur ein Beispiel - hast du etwa gedacht, ich mache hier ALLES für dich?
Du bist ja offensichtlich ein Experte - den Rest kannst du ja auch selber machen (normalerweise nehme ich bei grösseren Aufträgen 50€/Std) !
Viel Spass noch!
AW: Do While Schleifen
14.05.2020 22:51:01
Dark
Habe ich das irgendwo behauptet?
Du brauchst jetzt nicht gleich patzig werden! Du bist doch schließlich derjenige gewesen, der einem gleich krumm kam, obwohl dein Lösungsvorschlag ebenso wenig zu gebrauchen ist. Ich habe dich lediglich darauf hingewiesen, was an deiner Lösung, die nach dir "nur SO funktionieren kann" eben nicht funktioniert und dann im Anschluss deine Worte wiederholt. Du solltest dir in erster Linie erstmal über dein Auftreten und Verhalten Gedanken machen.
Aber trotzdem: danke für die Zeit.
Anzeige
AW: Do While Schleifen
14.05.2020 22:59:58
onur
Wenn ich wie du keine Ahnung von VBA hätte, wäre ich dankbar für jede Hilfe, statt die Helfer zu "kritisieren".
Aber du kapierst mit deinem bisschen Viertelwissen den Code offensichtlich gar nicht, da du sonst wüsstest, wie der Rest zu machen ist.
Ich habe dir den WEG gezeigt, wie du es machen kannst, den Rest kannst du selber machen.
Wie heisst es so schön: "Man kann den Esel zum Wasser führen, aber trinken muss er selbst".
AW: Do While Schleifen
14.05.2020 23:10:15
Dark
Jetzt wird es aber peinlich.
Für Hilfe bin ich dankbar, wie man am Verlauf erkennen sollte. Das sollte dir auch möglich sein. Wie ich schon bereits mehrmals erwähnt habe, kenne ich mich mit Schleifen nicht aus. Aber du ja offensichtlich auch nicht, was an deinem nicht funktionierenden Beispiel zu erkennen ist. Abgesehen davon heißt das nicht, dass du dir hier alles erlauben kannst. Komisch nur, dass du dann angepisst bist, wenn man dir deine eigenen Worte gegen hält. Das Leben ist nun mal keine Einbahnstraße.
Zudem scheinst du von Anfang an nicht begriffen zu haben, worum es mir ging. Was wiederum ebenfalls an deinem Lösungsvorschlag zu erkennen ist. Bedenkt man, wie großkotzig du dahergekommen bist, obwohl du mit deiner Lösung gescheitert bist, kann man darüber nur den Kopf schütteln. Aber ich gebe dir Recht: "Man kann den Esel zum Wasser bringen, aber trinken muss er selbst". Allerdings bezweifle ich, dass du durstig bist.
Anzeige
AW: Do While Schleifen
14.05.2020 23:20:58
onur
Hör mal zu du Vollpf..... - übertreibe es nicht!
Mit deinem IQ bist du doch gar nicht in der Lage, zu beurteilen, ob ein Code funktioniert oder nicht!
Du wusstest ja nicht mal wirklich, was eine Do Whlie-Schleife überhaupt ist und wie man sowas verwendet!
Hast du wahrscheinlich irgenwo aufgeschnappt und hast gedacht: Das kann ich doch auch - nachschlagen, wie man ihn korrekt benutzt ? - brauche ICH doch nicht!"
Jetzt lass mich endlich in Ruhe!
AW: Do While Schleifen
14.05.2020 23:30:14
Dark
Entblöße nur weiter deine mangelnde Erziehung und dich als Person du kleiner Internet-Rambo. Die Tatsache, dass dein Verhalten und Auftreten einfach nur peinlich sind spricht schon für sich. Zudem lässt die Tatsache, dass dein Lösungsvorschlag nicht funktioniert hat und einfach nicht mit dem übereinstimmt, was gefordert war, gekoppelt mit deinem Verhalten lässt nicht nur einen Rückschluss auf deinen Charakter, sondern auch auf deinen IQ zu. Abgesehen davon, konnte dein "nur SO funktionierendes" "Beispiel" nicht weiter funktionieren, wenn neue Zeilen hinzugefügt wurden (im Gegensatz zu meinem). Welchen Rückschluss lässt das wohl zu?
Und nochmal: Du kannst dir hier nicht alles erlauben. Wie es in den wald hineinschallt so schallt es auch wieder heraus.
Dachte ich mir. Durstig bist du wohl nicht.
Anzeige
AW: Do While Schleifen
15.05.2020 14:47:14
Dark
Übrigens: klappt's wunderbar mit der Do-While Schleife ;)

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige