Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

if Active.Workbook = "Dateixy" ...

    Betrifft: if Active.Workbook = "Dateixy" ... von: Caro
    Geschrieben am: 29.09.2003 13:40:58

    Hallo Forum!

    Ich habe ein Problem, das nicht gerade einfach zu erklären ist. Wenn's nicht verständlich genug ist, dann fragt einfach nochmal nach... also ich probier's mal:

    Ich habe für eine Datei ein eigenes Dropdown-Menu geschrieben, das sich beim Öffnen der Datei in die oberste Zeile zwischen "Extras" und "?" plaziert und beim Schließen der Datei wieder aus der Excel Symbolleiste verschwindet.
    Klappt wunderbar.

    Das Problem ereignet sich bei folgendem Ablauf:
    1. Öffnen besagter Datei -> zusätzliche Symbolleiste wird eingeblendet
    2. Öffnen einer x-beliebigen anderen Excel-Datei
    Wenn die 2. Datei aktiv ist und ich mit der Maus auf die Unterpunkte der eigenen Symbolleiste komme, bekomme ich einen Laufzeitfehler9 "Index außerhalb des gültigen Bereichs".
    Logisch, da die Symbolleiste ja nur für die eine bestimmte Datei vorgesehen ist.

    Frage:
    Wie kann ich in meinem SymbolleistenCode möglichst kurz und knapp etwas einfügen wie:

    If Active.Workbook = "Dateixy" Then
    Menü aktivieren
    Else
    Menü ignorieren
    Endif

    ???

    Kann mir jemand helfen??

    Danke, Caro

      


    Betrifft: AW: if Active.Workbook = "Dateixy" ... von: Veit
    Geschrieben am: 29.09.2003 13:48:21

    Hallo Caro,
    beim öffnen der Datei lädst Du doch die Symbolleiste und beim schließen entlädst Du sie. Das gleiche mußt Du nun nur noch beim Aktivieren bzw Deaktivieren der Mappe machen.

    Private Sub Workbook_Activate()
    MsgBox "Hallo"
    End Sub
    


    Private Sub Workbook_Deactivate()
    MsgBox "Tschö"
    End Sub
    


    Gruß
    Ein Veit


      


    Betrifft: AW: if Active.Workbook = "Dateixy" ... von: Caro
    Geschrieben am: 29.09.2003 14:15:08

    Hey Veit,

    danke für den Tipp,
    habe meinen Code um Deine Vermerke ergänzt, aber jetzt macht er alles doppelt. D.h. er fügt das Menü zweimal hinzu?! Wie umgehe ich das denn??

    ...Caro

    so sieht der Code aus, die Reihenfolge hat Exel automatisch gemacht.

    Private Sub Workbook_Activate()
        leisteerweitern
    End Sub
    


    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        erweiterungentfernen
    End Sub
    


    Private Sub Workbook_Deactivate()
        erweiterungentfernen
    End Sub
    


    Private Sub Workbook_Open()
        leisteerweitern
    End Sub
    



      


    Betrifft: AW: if Active.Workbook = "Dateixy" ... von: golem
    Geschrieben am: 29.09.2003 14:28:39

    hi caro,

    Private Sub Workbook_Open()
        leisteerweitern
    End Sub
    
    'und
    Private Sub Workbook_Activate()
        leisteerweitern
    End Sub
    

    #ist das selbe , lösche eins von beiden...
    Gruß Goli


      


    Betrifft: Vielen Dank EUCH BEIDEN!! (o.T.) von: Caro
    Geschrieben am: 29.09.2003 14:36:24

    Danke, danke,danke,danke,danke,danke,danke,danke...

    Caro


      


    Betrifft: zu früh gefreut: doch noch ne Frage von: Caro
    Geschrieben am: 29.09.2003 14:51:29

    Hallo Goli, hallo Veit, seid Ihr noch hier??

    Es klappt teilweise:
    beim hin- und herwechseln zwischen der speziellen und den anderen Dateien verschwindet und erscheint die Menüleiste immer richtig. Wenn ich aber die Datei, der die Menüleiste angehört schließe bekomme ich immer diese Fehlermeldung: "Laufzeitfehler5, Ungültiger Prozeduraufruf oder ungültiges Argument"

    Beim Debuggen markiert ist diese Zeile:

    Sub erweiterungentfernen()
        Application.CommandBars("Worksheet Menu Bar").Controls("Beispiellmenue").Delete
    End Sub
    



    ????
    Caro
    ????


      


    Betrifft: AW: zu früh gefreut: doch noch ne Frage von: Veit
    Geschrieben am: 30.09.2003 10:50:41

    Moin Caro,
    Dieser Laufzeitfehler sagt eigentlich nur, dass irgendwas nicht gefunden wurde. Standardantwort: Kontrolliere mal bitte die Schreibweise.
    Gehört das Menü zu wirklich "Worksheet Menu Bar"?
    ich habe leider nicht hier auf arbeit, was ich mal mit Symbolleisten gemacht habe. Aber ich versuche mal was ranzubekommen.
    Bis dahin
    ein Veit