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
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.
Top
#3
(27.06.2018, 09: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ß
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.
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.
Top
#6
(27.06.2018, 09: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)
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
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.
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, 10: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.?
Top


Gehe zu:


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