Microsoft Excel

Herbers Excel/VBA-Archiv

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

Menüpunkt mit Funktion

Betrifft: Menüpunkt mit Funktion von: Michi
Geschrieben am: 14.09.2004 18:50:48

Hallo,

hab folgendes Problem. Mit dem Code soll über eine Userform ein neuer Menüeintrag in einer eigenen Symbolleiste erstellt werden. Leider ist dieser Menüeintrag weg, sobald ich das File schließe. Sicher nur ein kleiner Fehler, aber ich find ihn nicht. Außerdem erstellt der Code nur einen neuen Menüeintrag, wenn bereits einer vorhanden ist. Ist das Menü leer, bringt er einen Debug-Fehler. Woran liegts?

Sub CreateControl()
   Dim objBtn As CommandBarButton
   'Begin insert Testmitarbeiter
   On Error Resume Next
   Application.CommandBars("Urlaubsplanung").Controls("Ansicht").Controls("Personal").Controls("Testmitarbeiter").Delete
   Err.Clear
   Set objBtn = Application.CommandBars("Urlaubsplanung").Controls("Ansicht").Controls("Personal").Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
   If Err <> 0 Then
      Err.Clear
      Set objBtn = Application.CommandBars("Urlaubsplanung").Controls("Ansicht").Controls("Personal").Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
   End If
   On Error GoTo 0
   With objBtn
      .Caption = ActiveSheet.Name
      .Parameter = ActiveSheet.Name
      .OnAction = "ActivateTab"
      .BeginGroup = False
      .TooltipText = "Blatt " & ActiveSheet.Name & " anwählen"
      .Style = msoButtonIconAndCaption
      .FaceId = 2141
   End With
   
   'End insert Testmitarbeiter
End Sub


Lieben Gruß
Michi
  


Betrifft: AW: Menüpunkt mit Funktion von: Nepumuk
Geschrieben am: 14.09.2004 19:40:59

Hallo Micha,

1. Das bewirkt der Parameter "Temporary:=True"
Wenn der Eintrag dauerhaft sein soll, dann einfach weglassen.

2. Das kommt vom Parameter "Before:=1"
Du musst eine Abfrage vorschalten, welche dir die Anzahl der Steuerelemente angibt (Controls.Count) ist diese null, dann den Parameter weglassen, ansonsten benutzen.

Gruß
Nepumuk


  


Betrifft: AW: Menüpunkt mit Funktion von: Michi
Geschrieben am: 14.09.2004 19:49:35

Hallo Nepumuk,

danke für deine schnelle Antwort. Da ich aber in VB eine absolute Niete bin (hab den Code mit Mühe und NOt zusammengeschustert) klappts bei mir irgendwie nicht. Wenn ich das Temporary ganz weg lasse, bringt er mir einen Laufzeitfehler 91: Objekt- oder Blockvariable nicht festgelegt.
Außerdem könnte ich zum Punkt 2 auch noch ein bißchen Anstoß gebrauchen. Sorry, aber manchmal ist VB für mich wie chinesisch.

Gruß Michi


  


Betrifft: AW: Menüpunkt mit Funktion von: Nepumuk
Geschrieben am: 14.09.2004 19:58:56

Hallo Michi,
einfach die beiden Zeilen mit denen der Button erstellt wird ändern:


   Set objBtn = Application.CommandBars("Urlaubsplanung").Controls("Ansicht").Controls("Personal").Controls.Add(Type:=msoControlButton, Before:=1)
   If Err <> 0 Then
      Err.Clear
      Set objBtn = Application.CommandBars("Urlaubsplanung").Controls("Ansicht").Controls("Personal").Controls.Add(Type:=msoControlButton)
   End If


Gruß
Nepumuk


  


Betrifft: AW: Menüpunkt mit Funktion von: Michi
Geschrieben am: 14.09.2004 20:13:33

Danke für den Tip Nepumuk :-)
Wünsch dir noch einen schönen Abend

Gruß Michi


 

Beiträge aus den Excel-Beispielen zum Thema "Menüpunkt mit Funktion"