Excel Loop?

2 Antworten

Von Experte Suboptimierer bestätigt

Es benötigt 2 SUBs oder Funktionen.
Die "IchUnterbreche" sollte per Click auf einen Knopf ausgeführt werden.
============
Public unterbreche as Boolean 'Variable anlegen die sich die beiden Subs teilen können.
=============
Public Sub IchMussUnterbrochenWerden
unterbreche = False
Do while unterbreche = False 'Zunächst Endlosschleife
Interaction.DoEvents 'Damit andere Events, wie das Aufrufen der anderen Sub möglich sind
loop
End Sub

Public Sub IchUnterbreche
unterbreche = True

End Sub
===
ABER: Da die Endlosschleife mit ihren Inhalten permanent ausgeführt wird,
hat Excel "sehr viel" zu tun und holt sich PC Leistung.
Es wäre besser einen Timer zu programmieren.


TygaX 
Beitragsersteller
 24.08.2023, 20:04

Inwiefern einen Timer? Es kann jederzeit passieren und soll nach keiner Zeit ablaufen.

Suboptimierer  28.08.2023, 08:01
@TygaX

Mit einem Timer kannst du alle paar Sekunden überprüfen, ob sich ein Status geändert hat. Beim Betätigen eines Buttons kannst du zum Beispiel einen Status gedrueckt auf True setzen.

Stichwort ist wohl rekursiver Aufruf. Die Sub muss sich selbst aufrufen, bis eine Bedingung erfüllt ist und etwas anderes erfolgen soll.

Oder meinst du, dass ein Makro so lange läuft, bis du etwas anderes startest? Das könnte man wohl mit Makro Events machen aber wäre sicher ziemlich unperformant.

Woher ich das weiß:Berufserfahrung – Wissenschaftliche Auswertungen

TygaX 
Beitragsersteller
 23.08.2023, 20:34

ich meine ersteres

TapRoot2021  23.08.2023, 20:54
@TygaX

Ja dann in etwa so:

sub A(Zahl)
if A<10 then
call A(Zahl + 1)
else
exit sub
end if
end sub

Müsstest du halt gucken welche Bedingen brauchst.