Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

2. Makro manuell im schon laufenden Makro starten?(Schleife)

Forumthread: 2. Makro manuell im schon laufenden Makro starten?(Schleife)

2. Makro manuell im schon laufenden Makro starten?(Schleife)
02.04.2025 23:54:49
Frank Dreier
Hallo Leute,

habe ein Problem: Ich starte ein Makro was eine Schleife besitzt. Diese wird per "F9" im Code bei "next" (also wenn die Schleife einmal durchgelaufen ist) markiert. Wenn ich nun "F5" drücke wird immer eine Schleife durchgegangen und gewartet. Sehr schön.
Nun möchte ich aber per Button (ist schon hinterlegt und funktioniert) ein anderes, 2. Makro starten wenn Excel mit dem Schleifen-Makro bei "next" wartet aber das funktioniert nicht, da ja schon das erste Makro läuft und artig bei "next" wartet.

Das 2. Makro im Schleifen-Makro zu starten indem man es einfach reinschreibt ins Schleifen-Makro geht nicht, da das 2. Makro nur ab und zu gestartet werden soll und nicht bei jedem Schleifendurchlauf.

Frage: Gibt es eine Möglichkeit ein laufendes Makro zu unterbrechen mit so etwas wie damit man ein anderes Makro ausführen kann? Excel soll dann bei -nach Ausführung eines anderen Makros- weitermachen...gibt es so eine Möglichkeit?

Problem mit der Schleife ist: Beende ich das Makro da ich nun das 2.Makro ausführen will werden alle Schleifenwerte wieder auf 0 gesetzt... und das 1. Makro mit der Schleife startet wieder mit allen Schleifenwerten bei 0... und das darf nicht sein. Das Schleifen-Makro muss nach Ausführung des 2. Makros da weitermachen wo es aufgehört hat mit allen aktuellen Schleifenwerten.

Eine Lösung habe ich schon gefunden ist aber sehr unelegant: Man externalisiert die Schleife indem man die aktuellen Schleifenwerte in unterschiedliche Zellen in Excel schreibt sobald das Schleifen-Makro einmal durchgelaufen ist und beendet es und dann immer bei Neustart des Schleifen-Makros mit +1 arbeiten im Code des Schleifen-Makros. Natürlich ist das fehleranfällig und sehr unelegant.
Es gibt auch noch die Möglichkeit bei der Unterbrechung bei "next" durch drücken von F9 im Code zum Beispiel in Zelle A1 im Arbeitsblatt: "ja" zu schreiben wenn man möchte, dass das 2. Makro ausgeführt wird. Das würde dann im Schleifen-Makro abgefragt werden ob da in A1 "ja" steht und dann würde das 2. Makro ausgeführt werden im Schleifenmakro. Problem dabei: dann muss ich via Tastatur jedes mal in A1 "ja" eingeben und das ist nervig.
Daher:
Gibt es keine Möglichkeit ein Makro zu pausieren um ein anderes Makro manuell per Tastenkombi oder Button zu starten? Vielen Dank für Ideen.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2. Makro manuell im schon laufenden Makro starten?(Schleife)
03.04.2025 00:37:13
velo
Hallo Frank,

gibt es denn eine Bedingung unter welcher das zweite Makro ausgeführt werden soll oder ist das eher nach Lust und Laune?

Du kannst ja einfach eine if-Klausel in deiner Schleife einbauen, die "pausiert" dann das erste Makro und führt das zweite aus, sofern die Bedingung erfüllt ist:
For i = x to y

'...
If Bedingung then Call Makro2
'...
Next i

Oder lieg ich hier falsch und du willst nach jedem Durchgang innerhalb der Schleife das zweite Makro ausführen?
Das wär dann noch einfacher:
For i = x to y

'...
Call Makro2
Next i

Ansonsten noch:
Du kannst Werte, die innerhalb einer Schleife "generiert" werden in Variablen, die außerhalb einer Prozedur deklariert werden, speichern, um später darauf zurückzugreifen:
Option Explicit


Dim var As Integer

Sub Makro1()
Dim i As Integer
For i = 1 To 100
'...
var = i 'bei Belieben Makro1 unterbrechen und der Wert z.B. i bleibt in var erhalten
Next i
End Sub

Sub Makro2()
Dim berechnung As Integer
berechnung = var * 2 'im Makro2 kann dann der Wert weiterverarbeitet werden
End Sub

Sorry, wenn ich was falsch verstanden habe --> viel Text zum lesen + spät Abends führen nicht zwingend zu guten Ergebnissen

Ich hoffe das hilft einigermaßen

VG
velo
Anzeige
AW: 2. Makro manuell im schon laufenden Makro starten?(Schleife)
03.04.2025 11:00:47
Onur
Da musst du einfach die Laufvariable als "STATIC" deklarieren und auf "For-Next"verzichten - siehe Beispiel:
https://www.herber.de/bbs/user/176557.xlsm

Forumthreads zu verwandten Themen

Anzeige