if Active.Workbook = "Dateixy" ...

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

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

Bild


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


Bild


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



Bild


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


Bild


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


Bild


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
????


Bild


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


 Bild

Beiträge aus den Excel-Beispielen zum Thema " XLS-Datei nach Outlook kopieren"