Benutzerdefinierte Symbolleiste je Datei
26.01.2026 12:58:29
Torro
bin schon lange auf der Suche nach einer Lösung, bisher leider vergebens.
Ich habe verschiedene Exceldateien, mit eigenen benutzerdefinierten Symbolleisten.
Alle auch mit unterschiedlichen Makros.
Öffne ich Datei 1 erscheint unter AddIns auch die dazugehörige Symbolleiste mit den Makros.
Öffne ich Datei 2, und schaue dann unter AddIns, habe beide Symbolleisten, mit den richtigen Makros.
Öffne ich Datei 2 mit STRG und Doppelklick, passiert es genauso, also scheinbar keine eigene Excel Instanz.
Wie bekomme ich es hin, dass beim Öffnen der Datei 2 auch nur die Symbolleiste für Datei 2 unter AddIns angezeigt wird, obwohl Datei 1 mit ihrer Symbolleiste ebenfalls geöffnet ist. Dort soll natürlich auch nur die Symbolleiste von Datei 1 unter AddIns angezeigt werden.
Dank im Voraus.
Für alle Dateien sieht mein Code bezüglich der Symbolleisten wie folgt aus und liegt im Modul 1
Option Explicit
Public Const ToolBarName As String = "entsprechender Name"
'===========================================
Sub Auto_Open()
Call CreateMenubar
End Sub
Sub Auto_Close()
If getCountOpenWorkbooks 2 Then
Call RemoveMenubar
End If
'UserForm1.Show
End Sub
Function getCountOpenWorkbooks()
Dim objWorkbook As Workbook
Dim i As Integer
For Each objWorkbook In Application.Workbooks
If objWorkbook.Name Like "entsprechender Name" Then
'MsgBox objWorkbook.Name
i = i + 1
End If
Next
getCountOpenWorkbooks = i
End Function
Sub RemoveMenubar()
On Error Resume Next
Application.CommandBars(ToolBarName).Delete
On Error GoTo 0
End Sub
Sub CreateMenubar()
Dim iCtr As Long
Dim MacNames As Variant
Dim CapNamess As Variant
Dim TipText As Variant
Dim CB As CommandBar
Call RemoveMenubar
MacNames = Array("Makro 1", _
"Makro 2", _
"Makro 3", _
"Makro 4")
CapNamess = Array("Name Makro 1", _
"Name Makro 2", _
"Name Makro 3", _
"Name Makro 4")
With Application.CommandBars.Add
.Name = ToolBarName
.Left = 1000
.Top = 50
.Protection = msoBarNoProtection
.Visible = True
.Position = msoBarTop
For iCtr = LBound(MacNames) To UBound(MacNames)
With .Controls.Add(Type:=msoControlButton)
.BeginGroup = True
.OnAction = "'" & ThisWorkbook.Name & "'!" & MacNames(iCtr)
.Caption = CapNamess(iCtr)
.Style = msoButtonCaption
.FaceId = 71 + iCtr
'.TooltipText = TipText(iCtr)
End With
Next iCtr
End With
End Sub
Anzeige