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

Makro springt nach End Sub ins Makro davor

Forumthread: Makro springt nach End Sub ins Makro davor

Makro springt nach End Sub ins Makro davor
19.02.2025 12:50:10
Udo
Moin, ich habe schon wieder ein neues Problem, ich habe mir kurze Makros geschrieben, die je nach dem ob Eintrag vorhanden oder nicht zum nächsten Blatt wechseln sollen. Habe extra keine Sprungmarken gesetzt:
Sub MasteBestimmen()
'
' MasteBestimmen Makro
'
Sheets("Multiprojekte").Select
Range("K23").Select
Dim Muss1 As String
Muss1 = Range("K23")
If Muss1 = "0" Or Muss1 = "" Then MasteBestimmen2
If Muss1 > "0" Or Muss1 > "" Then
Sheets("Mast Grube Multi3,5P").Select
Range("BP33").Select
End If
End Sub

Sub MasteBestimmen2()
'
' MasteBestimmen Makro
'
Sheets("Multiprojekte").Select
Range("AB23").Select
Dim Muss2 As String
Muss2 = Range("AB23")
If Muss2 = "0" Or Muss2 = "" Then MasteBestimmen3
If Muss2 > "0" Or Muss2 > "" Then
Sheets("Mast Grube Multi3,5B").Select
Range("BP33").Select
End If
End Sub
Sub MasteBestimmen3()
'
' MasteBestimmen Makro
'
Sheets("Multiprojekte").Select
Range("AN23").Select
Dim Muss3 As String
Muss3 = Range("AN23")
If Muss3 = "0" Or Muss3 = "" Then MasteBestimmen4
If Muss3 > "0" Or Muss3 > "" Then
Sheets("Mast Grube Multi3,5lB").Select
Range("BP33").Select
End If
End Sub

Sub MasteBestimmen4()
'
' MasteBestimmen Makro
'
Sheets("Multiprojekte").Select
Range("K24").Select
Dim Muss4 As String
Muss4 = Range("K24")
If Muss4 = "0" Or Muss4 = "" Then MasteBestimmen5
If Muss4 > "0" Or Muss4 > "" Then
Sheets("Mast Grube Multi5P").Select
Range("BP33").Select
End If

End Sub



Das geht noch so weiter bis MasteBestimmen15, jedes Makro für sich arbeitet wunderbar. Beim Testlauf aber hing es sich auf, blieb bei MastBestimmen3 stehen.
Habe darauf hin den ganzen Ablauf mit der "F8" durchgespielt, lief wieder alles glatt, volle Funktion. Nur wenn ich die Dinger einzeln mit "F8" durchtaste ist im Makro MasteBestimmen4 bei End Sub nicht wirklich Schluss, der gelbe Balken springt nach End Sub auf MasteBestimmen4 Zeile >If Muss3 > "0" Or Muss3 > "" Then zurück. Wenn ich dann weiter "F8" betätige springt er weiter bis zu End Sub und dann auf MasteBestimmen3 und immer so weiter.

Wo ist denn da jetzt mein Fehler ?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro springt nach End Sub ins Makro davor
19.02.2025 12:55:54
MCO
Moin!

Mit dem Verweis auf die Unterfunktionen ist das Makro ja nicht zu Ende.
Wenn also die Unterfunktion abgearbeitet ist, geht der ins Makro zurück.

wenn du das nicht willst, dann so (beispielhaft):

If Muss3 = "0" Or Muss3 = "" Then MasteBestimmen4: exit sub


Gruß, MCO

Anzeige
AW: Makro springt nach End Sub ins Makro davor
19.02.2025 14:39:59
Piet
Hallo

zweite Alternative, arbeite mit ElseIf, dann tritt der Effekt nicht auf!

mfg Piet

Sub Test

If Muss1 > "" Then
Makro1
ElseIf Muss2 > "" Then
Makro2
ElseIf Muss3 > "" Then
Makro3
usw ...... bis 15
End if
End Sub
mfg Piet
Anzeige
AW: Makro springt nach End Sub ins Makro davor
19.02.2025 15:45:52
GerdL
Moin

Sub Unit()



Dim i As Integer, Ziel(1 To 4) As Range, arrCheck As Variant

Set Ziel(1) = Sheets("Mast Grube Multi3,5P").Range("BP33")
Set Ziel(2) = Sheets("Mast Grube Multi3,5B").Range("BP33")
Set Ziel(3) = Sheets("Mast Grube Multi3,5lB").Range("BP33") 'Stimmt diese Bezeichnung ?
Set Ziel(4) = Sheets("Mast Grube Multi3,5P").Range("BP33")

With Sheets("Multiprojekte")
arrCheck = Array("Dummy", .Range("K23"), .Range("AB23"), .Range("AN23"), .Range("K24"))
End With

For i = 1 To 4
If arrCheck(i) > "" And arrCheck(i) > 0 Then
Application.Goto Ziel(i)
Exit For
End If
Next
If i > 4 Then MsgBox "Gehe ggf. woanders hin"


End Sub

Mast- u. Schotbruch!
Gruß Gerd
Anzeige
AW: Das geht noch einfacher, mit 1 einzigem Makro!!
19.02.2025 14:52:50
Piet
Hallo

wenn man voreilig Antwort gibt, und sich dann deinen Code anschaut, muss man 2. antworten.
Dein Code ist derart simpel, das geht doch mit einem einzigen Makro, statt Makros von 1-15.
Verlege die gesamte Auswertung, ALLE "Muss" mit IF Then ins 1. Makro, aktiviere dort die Sheets!
Probiere es bitte selbst aus. Dann hast du keinen Tuck mehr mit diesem Effekt.

mfg Piet


If Muss1 > "" Then
Sheets("Mast Grube Multi1,5P").Select
ElseIf Muss2 > "" Then
Sheets("Mast Grube Multi2,5P").Select
ElseIf Muss3 > "" Then
Sheets("Mast Grube Multi3,5P").Select
'usw ...... bis 15
End If
'immer gleiche Zelle aktiv für alle Sheets??
'** bei Nein, Range Select in ElseIf einbauen
Range("BP33").Select
End Sub
>
Anzeige
AW: Makro springt nach End Sub ins Makro davor
19.02.2025 13:13:06
Udo
Super, nun funktioniert alles, Danke
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18