online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon wmei vom 27.04.2021, 08:28 Options

Lösung

for next schleife

Schöne Woche an die Gemeinde,
hab ein kleines Problem am Montag.
Ich habe folgende Konstruktion
b= Zeilenzähler
for "a" to "b" step 1
Bedingung wenn wahr
Zeile einfügen
b= Zeilenzähler
next a
Die Schleife wird immer beendet wenn "a" den Startwert von Zeilenzahl erreicht hat,
die Zeilenanzahl hat sich aber längst erhöht.
Erhöhen von "a" etwa durch a= a+1 oder verringern a=a-1 zeigen keine Wirkung, es wird exakt die Anzahl der Zeilen beim Start abgearbeitet
und fertig.
Wer hat ne' Lösung?
wim


Antwort schreiben

Antwort 1 von Saarbauer vom 27.04.2021, 09:10 Options

Hallo,

da deine Angabe nur ein Fragment zu sein scheint, eine Frage:

Was hast du da genau vor?

Deine Angaben oben lassen den Eindruck zu, dass du noch nie mit VBA und Makros gearbeitet hast.

Gruß

Helmut

Antwort 2 von Beverly vom 27.04.2021, 09:27 Options

Hi,

laufe die Schleife von "hinten nach vorne" durch, also For a to b Step -1.

Bis später,
Karin

Antwort 3 von wmei vom 27.04.2021, 10:31 Options

Hi Karin,
diese Antwort von Dir kannte ich schon, da Du schon in gleicher Weise auf eine Anfrage geantwortet hast, aber ich dachte es gibt
noch ein "Hintertürchen" um nicht Alles umzuschreiben.

Hi Helmut,
die Frage ist einfach ob der Schleifenzähler einer einmal
gestarteten Schleife vor Ablauf noch mal verändert werden kann.
Karin's Antwort läßt vermuten NEIN.
Ich danke Euch,
wim

Antwort 4 von Saarbauer vom 27.04.2021, 12:43 Options

Hallo,

duch das geht, du kannst den Schleifenzähler, hier a, runter oder raufsetzten in der Form a=a +5 o.ä.

Was nicht geht is den Endwert, hier b, zu beeinflussen. Du kannst zwar b verändern, aner es hat keinen Einfluss auf die Schleife.mehr, es wird mit dem Startwert der Schleife weitergearbeitet.

Gruß

Helmut

Antwort 5 von Marie vom 28.04.2021, 02:12 Options

Zitat:
for "a" to "b" step 1
.....
next a

kann ja doch sowieso nicht gehen. Step 1 ist unnötig, schreibst Du nichts dahinter geht es automatisch im Einerschritt. Ansonsten müsste es heißen for a =1 to b oder so ähnlich

Wenn Du das Ende hochzählen willst, dann nimm eine While-Schleife. Die folgende Schleife macht einen Durchlauf weniger als zeilen vorhanden sind

Public Sub test()

Dim b As Integer
Dim Antwort As String
'b = Zeilenzähler, sei b zuerst 4
b = 4
a = 0 ' Schleifendurchlaufzähler wird jedesmal hochgezählt
Do While a <> b
    Antwort = MsgBox("Weiterzählen ja/nein", vbYesNo, "b ist jetzt" & b)
    If Antwort = vbYes Then b = b + 1     ' Zeilenzähler um 1 erhöhen
    a = a + 1
Loop
End Sub 


Gruß Marie

Antwort 6 von Marie vom 28.04.2021, 02:16 Options

Zitat:
Die folgende Schleife macht einen Durchlauf weniger als zeilen vorhanden sind


Stimmt nicht mehr, habs vor dem Absenden korrigiert durch Anfangswert a=0, sind also jetzt so viele Durchläufe wie Zeilen.

Sorry Marie

Antwort 7 von wmei vom 28.04.2021, 07:24 Options

Guten Morgen Gemeinde,
hab es mit
For a = b To 1 Step -1
hingebracht, die Lösung von Karin find ich aber auch sehr gut.
Danke nochmals
wim

Ähnliche Themen

schleife beenden
sebal  13.11.2007 - 101 Hits - 5 Antworten

Schleife für Nameliste
Moe23617  14.05.2008 - 39 Hits - 3 Antworten

VBA+For Schleife
Gast00001  04.09.2008 - 31 Hits - 3 Antworten

For Schleife mit Unterbrechungen
Berni333  15.09.2008 - 7 Hits - 5 Antworten

VBA-Progr. - For-Next - Schleifen Einbau
kallie  11.03.2009 - 200 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026