Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Do Until Schleife verlassen wenn bestimmte Reihe erreicht wurde
#1
Hallo Zusammen,

ich frage mich ob es eine Möglichkeit gibt, dass die Do Until Schleife verlassen wird wenn eine bestimmte Reihe verlassen wird?

Code:
Do
' Do Something
Loop Until Active.Address = "$N$10:$BI$10"

Zur Zeit habe ich diesen Code, aber leider springt der Code dann weiter in Reihe 9. Ich möchte aber, dass die Do Until Schleife sobald sie die 10. Reihe erreicht aufhört.

Ich hoffe jemand kann mir helfen.

Danke
Antworten Top
#2
Hi,

1. springt der Code eigentlich nicht in Reihe 9 (Was ist eigentlich für Dich eine Reihe?)
2. Ist der Schnipsel nur wenig hilfreich.
3. dürfte die Zuweisung der Adresse nicht funktionieren.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
(27.06.2018, 08:04)BoskoBiati schrieb: Hi,

1. springt der Code eigentlich nicht in Reihe 9 (Was ist eigentlich für Dich eine Reihe?)
2. Ist der Schnipsel nur wenig hilfreich.
3. dürfte die Zuweisung der Adresse nicht funktionieren.

1. Der Code fängt bei der letzten hinzugefügten Reihe an und endet erst wenn er bei Reihe "1" ist. Ich will aber das er in Reihe 10 bzw. in Range("N10:BI10") aufhört
2. Brauchst du dafür wirklich meine ganzen Code, der eigentlich nur angzeigt, dass er von hier nach dort geht und schaut ob ein bestimmter Wert in der Zeile steht?
3. Das habe ich schon mitbekommen, dass das nicht funktioniert, daher frage ich ja was ich ändern muss damit es funktioniert.

Gruß
Antworten Top
#4
Hi,

Zitat:Brauchst du dafür wirklich meine ganzen Code,
ja!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Ich konnte die Lösung des Problemes in einem anderem Forum finden.

Code:
Do
   ' Do Something
Loop Until ActiveCell.Row = 10
 
Hier die Lösung falls jemand mal vor dem gleichem Problem steht.
Antworten Top
#6
(27.06.2018, 08:22)Mr.Invisible schrieb: Ich konnte die Lösung des Problemes in einem anderem Forum finden.

Moin!
Der Link dahin würde mich mal interessieren!  :21:
Eine Do-Loop macht nur dann Sinn, wenn die Ausstiegssituation (noch) unbekannt ist!
(hier würde eine Schleife For i = 1 To 10 erheblich mehr Sinn machen)
Eine Schleife über Zellen ist allerdings das langsamste, was man Excel-VBA antun kann!
Mal ein Zitat aus einem Tutorial:
Zitat:Mit Do-Schleifen kann man Programmanweisungen wiederholen, solange eine Bedingung erfüllt ist. Solche Schleifen eignen sich dann, wenn man nicht weiß, wie oft die Schleife durchlaufen werden soll.
https://www.vba-tutorial.de/ablaufsteuer...leifen.htm

Was hast Du WIRKLICH vor?
Vielleicht lernst Du dann tatsächlich etwas, wenn ich Dir eine Alternative aufzeige!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Moin RPP63,

ich versuchs mal zu erläutern was ich vor habe.

Mein Code fügt am Ende der Tabelle eine neue Reihe ein. Diese Reihe besteht aus 6 Zellen, je nachdem an welchem Datum das Produkt geliefert werden muss, werden die Zellen an einem bestimmten Ort in der Tabelle eingefügt. 

Danach soll der Code die ersten sechs Zeilen nach links und nach oben bis zur 10. Reihe kontrollieren ob eine bestimmte Farbe schon vorkommt. 

Daher ist deine Variante mir For i = 1 To 10 nicht möglich, da sich die Tabelle ständig vergrößert.

Aber wie gesagt, ich hab jetzt eine Lösung gefunden die genau das macht was ich vorhabe.

Das Forum ist https://stackoverflow.com/

Grüße
Antworten Top
#8
Hi,

die Schleife müsste auch von der letzten Zeile bis zur Zeile 10 laufen. Im Prinzip so:


Code:
loLetzte=cells(rows.count,"N").end(xlup).row

for i=loLetzte to 10 Step -1
Do something
next
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#9
Hi,

die englischen Excel-Begriffe können nicht immer 1:1 übersetzt werden. Verwende die Standard-Begriffe des deutschen Excels und es kommt zu weniger Mißverständnissen und Nachfragen.

Cell => Zelle
Row => Zeile
Column => Spalte

(27.06.2018, 09:35)Mr.Invisible schrieb: Mein Code fügt am Ende der Tabelle eine neue Reihe ein. Diese Reihe besteht aus 6 Zellen, je nachdem an welchem Datum das Produkt geliefert werden muss, werden die Zellen an einem bestimmten Ort in der Tabelle eingefügt. 

Danach soll der Code die ersten sechs Zeilen nach links und nach oben bis zur 10. Reihe kontrollieren ob eine bestimmte Farbe schon vorkommt. 

Welche Zeilen sollen kontrolliert werden?
Nur die ersten 6 nach links und dann von der letzten nach oben bis zur 10.?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste