snowman25
Goto Top

VBA und Excel - Eigenartiges Phänomen beim RUN-Command

Macro-Aufrufe über RUN werden doppelt ausgeführt

Ich habe ein String-Array mit den Namen mehrere Subs, welches ich über eine For Each-Schleife durchlaufe und darin die Subs über Run aufrufe:
Private Sub btn_start_Click()
    Set sht = Sheets("Ausgabe")  
    Dim MB_Arr(15) As String
    Dim runner As String
    Dim curr_MB As Variant
    MB_Arr(0) = "AUG_events"  
    MB_Arr(1) = "AWB_events"  
    MB_Arr(2) = "BOH_events"  
    MB_Arr(3) = "BRU_events"  
    MB_Arr(4) = "GAR_events"  
    MB_Arr(5) = "HUM_events"  
    MB_Arr(6) = "MAN_events"  
    MB_Arr(7) = "MEI_events"  
    MB_Arr(8) = "RAB_events"  
    MB_Arr(9) = "STA_events"  
    MB_Arr(10) = "STO_events"  
    MB_Arr(11) = "TH_events"  
    MB_Arr(12) = "VOL_events"  
    MB_Arr(13) = "WAE_events"  
    MB_Arr(14) = "WAL_events"  
    MB_Arr(15) = "ALM_events"  
    For Each curr_MB In MB_Arr()
        runner = "Sheet1." & curr_MB & "()"  
        Run runner
    Next curr_MB
    'sht.Select  
End Sub
Leider läuft Run in einem eigenen Thread, hier komme ich mit dem Debugger als nicht rein.
In der Sub AUG_events() werden 5 OptionButtons ausgewertet und je nach Wert eine MsgBox ausgegeben, allerdings wird genau die gleiche nach dem Bestätigen sofort wieder angezeigt! Erst nach dem 2. mal wird der nächste Wert aus MB_Arr() durchlaufen. Dabei wird die Schleife aber keineswegs doppelt ausgeführt. auch das Run-Command selbst wird laut Debugger nicht doppelt ausgeführt. Wieso bekomme ich die MsgBox dann aber doch doppelt?
zur Verständlichkeit hier noch AUG_events():
Public Sub AUG_events()
If Not AUG_start = "" Then  
    If AUG_aussen.Value Then
        MsgBox "im Aussendienst"  
    ElseIf AUG_reise.Value Then
        MsgBox "auf reisen"  
    ElseIf AUG_urlaub.Value Then
        MsgBox "URLAUB!"  
    ElseIf AUG_schule.Value Then
        MsgBox "in der Schule"  
    ElseIf AUG_krank.Value Then
        MsgBox "krank"  
    End If
End If
End Sub


Verwirrt - Snowman25

Content-ID: 127925

Url: https://administrator.de/contentid/127925

Ausgedruckt am: 24.11.2024 um 03:11 Uhr

76109
76109 26.10.2009 um 15:19:59 Uhr
Goto Top
Hallo Snowman25!

Das ganze ist schon etwas verwirrend, aber wenn DU im ersten Code die Zeile 23 änderst, sollte es funktionieren:
runner = "Sheet1." & curr_MB  'Ohne Klammer  

Gruß Dieter
Snowman25
Snowman25 26.10.2009 um 15:34:20 Uhr
Goto Top
Danke, das hat das Problem gelöst (warum auch immer)