Excel bei Start Menü anlegen
#1
Hallo

ich möchte beim Start einer Datei folgenden Code ausführen:

Code:
Sub NewMenueBar()
  Dim oCmdBar As CommandBar
  Dim oPopUp As CommandBarPopup
  Dim oCmdBtn As CommandBarButton
  Dim datDay As Date
  Dim iMonths As Integer
  Call DeleteNewMenueBar
  Set oCmdBar = Application.CommandBars.Add( _
     Name:="MyNewCommandBar", _
     Position:=msoBarTop, _
     MenuBar:=True, _
     temporary:=True)
     
  Set oPopUp = oCmdBar.Controls.Add(msoControlPopup)
  oPopUp.Caption = "Prüfung"
  For iMonths = 1 To 12
     Set oCmdBtn = oPopUp.Controls.Add
     With oCmdBtn
        .Caption = Format(DateSerial(1, iMonths, 1), "mmmm") & " Druck"
        .OnAction = ""
        .Style = msoButtonCaption
     End With
  Next iMonths

   Application.CommandBars("Worksheet Menu Bar").Enabled = False
  oCmdBar.Visible = True
MsgBox "Makro ausgeführt"
End Sub

Sub DeleteNewMenueBar()
   On Error GoTo ERRORHANDLER
   Application.CommandBars("MyNewCommandBar").Delete
   Application.CommandBars("Worksheet Menu Bar").Enabled = True
   Exit Sub
ERRORHANDLER:
End Sub
Dazu habe ich in "Dieser Arbeitsmappe" diese Befehle eingesetzt
Code:
Private Sub Workbook_Open()
NewMenueBar
End Sub

Das Makro NewMenueBar wird ausgeführt .. die MsgBox wird angezeigt. Aber das Menü wird nicht eingefügt.
Wenn ich das Makro nochmals ausführe, wenn die Datei geladen ist funktioniert es ohne Probleme.
Wie bekomme ich es hin, dass er das Menü direkt wie gewünscht erweitert?

Danke
Gruss
Stefan
Top
#2
Hallo Stefan

man versteht nicht immer warum ein Makro nicht so klappt wie man es will.  Probier mal die untere Version.
Sollte es klappen bitte mich nicht fragen warum es klappt. Ist nıur so eine Ahnung, kann mich auch irren ....
Man sollte ja denken die Set Anweisung "cmdBar" muss mit Application gleich sein. manchmal ist es anders.

mfg  Gast 123

   Application.CommandBars("Worksheet Menu Bar").Enabled = False
   Application.CommandBars("MyNewCommandBar").Visible = True
   Application.CommandBars("Worksheet Menu Bar").Visible = False
Top
#3
Hallo

Nein, hat leider auch nicht geholfen.

Ich habe aber neue Erkenntnisse:
Wir arbeiten mit SharePoint. Das Problem tritt nur auf, wenn ich die Datei über den Explorer öffne.

Öffne ich aus SharePoint heraus oder aus Excel heraus die Datei, dann funktioniert es.

Unterschied ist, wenn ich aus dem Explorer öffne habe ich in Excel zuerst die Warnung, ob ich mir sicher bin, dass ich diese Datei mit Makros ausführen will und muss über die Schaltfläche Bearbeitung aktivieren bestätigen, dass dies ok ist.
Ist das Makro dann schon gelaufen wurde aber von den Sicherheitseinstellungen unterdrückt? - Gibt es dazu einen Workaround?

Immer über SharePoint direkt zu öffnen ist leider etwas umständlich.
Top
#4
Habe einen Workaround gefunden.

Ich arbeite nun nicht mit Workbook_Open sondern mit Workbook_Activate und Frage mit einer variable ab, ob es der erste Activate nach dem Start ist.
Code:
Option Explicit
Dim start As Boolean

Private Sub Workbook_Activate()
If start = False Then NewMenueBar 
start = True
End Sub
So macht es was es soll Wink
Top
#5
Hallo

Sorry, ich amüsiere mich köstlich über diese Rückmeldung, denn sie zeigt etwas verblüffend einfaches.  Manchmal kann man mit einem Tipp dem Frager nicht direkt helfen, bringt ihn aber dadurch auf eigene neue Erkenntnisse, die dann wie hier zur Lösun führen!  Ein wichtiger Aspekt unserer Forum Arbeit.

Ist das nicht schön ...    Herzlichen Dank für dieses Rückmeldung

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Kaffeebart
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste