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

Excel VBA Schleife

Excel VBA Schleife
09.06.2021 17:19:27
Alexander
Moin,
ich versuche mich mal gerade mit VBA finde es Interessant und für das eine oder andere passt es zu meinen Excel Tabellen.
Könntet Ihr mir hier schnelle hilfe geben , damit ich sowas mal verstehe, hab zwar schon google benutzt finde da nur irgendwie Beispiele die sich nie auf Excel beziehen sondern nur auf VBA
Ich möchte diesen makro quasi haben für mich zum Testen und verstehen. Ich möchte , das er die besagten Zellen so lange neu berechnet bis dort keine "0" mehr bei beiden Zellen ist.
Ich Danke euch :)

Sub Test()
Worksheets("Spieltag").Activate
Range("Q16:Z16").Calculate
If Range("R16") = "0" Then
Range("R16").Calculate
ElseIf Range("W16") = "0" Then
Range("W16").Calculate
Else
MsgBox "Test fertig "
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Schleife
09.06.2021 18:42:13
Matthias
Hallo,
Zitet:
hab zwar schon google benutzt finde da nur irgendwie Beispiele die sich nie auf Excel beziehen sondern nur auf VBA
Nun, Schleifen kann man eben nur mit VBA programmieren und das ist ein Bestandteil von Excel ;-)
Gruß Matthias
AW: Excel VBA Schleife
09.06.2021 19:05:45
Daniel
Hi
im Prinzip so:

Do while Range("R16").value = 0 or Range("W16") = 0
Application.Calculate
Loop
allerdings besteht bei so einer Do-Loop Schleife immer die Gefahr eine Endlosschleife, falls das Ereignis, dass die Schleife abbrechen soll, nie eintritt.
du müsstest dir also schon überlegen, wass innerhalb der Schleife passieren kann, damit sich die Werte der beiden Zellen verändern.
nur Neuberechnen hilft da in der Regel auch nicht, denn wenn da Formeln drinstehen müsste sich ja in den Zellen, die Formeln verwenden etwas ändern damit es neue Werte gibt.
Zusätzlich solltest du bedenken, dass während ein Makro läuft, Excel für alles andere gesperrt ist.
Dh wenn du innerhalb der Schleife nicht irgendwas veränderst was Einfluss auf das Ergebnis der beiden Zellen hat, gibts nur zwei Möglichkeiten:
a) die Schleife wird gar nicht ausgeführt weil die Bedingung schon zu Beginn erfüllt ist
b) Endlosschleife, weil sich während der Schleife nichts verändert.
einzige Ausnahme: die Zellwerte werden auf Basis der Funktionen Zufallsbereich() oder ZufallsZahl() neu berechnet, denn diese Funktionen sind volatil und ergeben bei jeder Neuberechung immer einen neuen Wert.
Gruß Daniel
Anzeige
AW: Excel VBA Schleife
09.06.2021 22:14:02
Alexander
Vielen Dank Daniel Funktioniert mega, habe mir den etwas umgebaut und kann da mit jetzt super arbeiten.
habe mir diesen jetzt als einen Makro gespeichert.
Gibt es eigentlich auch eine Möglichkeit, dass ich z.b in Zelle A1 eine Zahl habe sagen wir mal eine 6 und das er dann den Makro 6 x ausführt und dann aufhört?
AW: Excel VBA Schleife
09.06.2021 23:04:30
Alexander
Habe ich gerade selber gefunden , ich danke euch allen. Schönen Abend
AW: Excel VBA Schleife
09.06.2021 23:20:00
Daniel
in der Do-Schleife müsstest du eine Zählervariable mitlaufen lassen (x = x + 1), welche du dann mit dem Zellwert vergleichst (if x > Range("A1").value then exit do)
oder dann doch lieber eine For-Next-Schleife For x = 1 to Range("A1").value.
Hauptunterschied ist, dass in der For-Next-Schleife der Schleifenendwert nicht während der Schleife verändert werden kann, sondern zu beginn festgelegt wird.
bei der DO-Loop-Schleife hast du hier die volle flexibiltät (natürlich mit dem Risiko der Endlosschleife)
dafür ist die DO-Schleife etwas langsamer (was aber bei 6 umläufen nicht ins gewicht fällt, vielleicht erst bei 6000000)
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige