Excel - der selbst erstellte Menüpunkt soll nur in EINER Datei erscheinen - nicht generell
Hallo,
in meiner Excel-Datei habe ich einen weiteren Menüpunkt mit 2 Unterpunkten - welche jeweils mit einem Makro verknüpft sind - erstellt. Zwei Probleme treten dabei auf.
1. Wenn ich die Datei auf ein Netzlaufwerk stelle, werden die Makros nicht mehr gefunden (sie verweisen "hart" auf C:ß\...)
2. Der Menüpunkt erscheint jetzt bei mir generell in Excel - ich will aber, dass er ausschließlich bei dieser einen Datei erscheint.
Kann mir jemand weiterhelfen?
Danke, Gruß
Jojo
Antwort schreiben
Antwort 1 von Hajo_Zi vom 07.11.2020, 09:09 Options
Hallo Jo,
erstelle die Punkte per VBA und starte die Makros in der Datei unter DieseArbeitsmappe.
Option Explicit
' von Bert Koern
' FaceId Nr auf folgender Homepage http://www.excel-addins.de/
Sub Eigenes_Menu()
' mit Unter-Untermenü
On Error Resume Next
Application.CommandBars.ActiveMenuBar _
.Controls("Hajo Ziplies").Delete
With Application.CommandBars.ActiveMenuBar.Controls.Add(Type:=msoControlPopup)
.BeginGroup = True 'Trennlinie
On Error GoTo 0
.Caption = "Hajo &Ziplies"
' erster Menüpunkt
With .Controls.Add
.FaceId = 330
.Caption = "&Ausblenden"
.OnAction = "Ausblenden"
End With
' Zweiter Menüpunkt
With .Controls.Add
.FaceId = 2105
.Caption = "&Einblenden"
.OnAction = "Einblenden"
End With
'*********************************************************
' Untermenü erzeugen:
' dritter Menüpunktmit Untermenü
With .Controls.Add(Type:=msoControlPopup)
.BeginGroup = True 'Trennlinie
.Caption = "&Hajo Spezial :--)"
With .Controls.Add(Type:=msoControlPopup)
.Caption = "Untermnü1"
With .Controls.Add
.FaceId = 330
.Caption = "&Ausblenden"
.OnAction = "Ausblenden"
End With
With .Controls.Add
.FaceId = 2105
.Caption = "&Einblenden"
.OnAction = "Einblenden"
End With
End With
With .Controls.Add(Type:=msoControlPopup)
.Caption = "Untermnü2"
With .Controls.Add
.FaceId = 330
.Caption = "&Ausblenden"
.OnAction = "Ausblenden"
End With
With .Controls.Add
.FaceId = 2105
.Caption = "&Einblenden"
.OnAction = "Einblenden"
End With
End With
End With
'*********************************************
' Wieder normal weiter:
' vierter menüpunkt
With .Controls.Add
.FaceId = 330
.Caption = "&Ausblenden"
.OnAction = "Ausblenden"
End With
End With
End Sub
Sub Eigenes_Menu_loeschen()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Hajo Ziplies").Delete
End Sub
Gruß Hajo
Antwort 2 von jojo5 vom 07.11.2020, 14:33 Options
Hallo Hajo,
super - vielen Dank. Ich hab' das in mein sheet eingebunden und angepasst.
Weißt Du, wo ich eine Übersicht über alle faceIDs finde? (jeweils ID + Symbol)
Gruß
Jojo
Antwort 4 von jojo5 vom 07.11.2020, 14:41 Options
Hallo,
jetzt war ich doch zu schnell. Die Makros in diesem Menü dürfen nur in dieser Datei ausgeführt werden können. Wenn ich aber mehrere Dateien geöffnet habe, stehen diese auch in anderen files zur Verfügung.
Kann ich das Erstellen und Löschen der Menüpunkte (zusätzlich zum Starten und Schließen der Datei) auch beim Aktivieren bzw. Deaktivieren der Datei ausführen?
Gruß
Jojo
Antwort 5 von Hajo_Zi vom 07.11.2020, 14:47 Options
Hallo Jo,
auch dafür gibt es Ereignisse.
Option Explicit
Private Sub Workbook_Activate()
End Sub
Private Sub Workbook_Deactivate()
End Sub
Gruß Hajo
Antwort 6 von jojo5 vom 07.11.2020, 14:55 Options
jetzt ist es perfekt!!!
Viiiiielen Dank und ein schönes Wochenende
Jojo