Microsoft Excel

Herbers Excel/VBA-Archiv

Menue Bar loeschen | Herbers Excel-Forum


Betrifft: Menue Bar loeschen von: abu
Geschrieben am: 12.01.2010 12:28:03

Hallo zusammen,

habe irgendwann mal mit freundlicher Unterstuetzung dieses Forums eine neue Schaltflaesche in der Menuebar erstellt. Klappt auch wunderbar allerdings bekomm ich sie nicht mehr Weg. Ich moechte sie nun in ein Addin einbauen und nur dann sehen wenn ich das Addin aktiviert habe. Hier der Coder den ich seinerzeit mal hab laufen lassen, habe keine rechte hier und kann auf keine Programmordner von Excel oder Windows zugreifen...

Sub Auto_Open()
    Dim MB As Object
    For Each MB In MenuBars
        MB.Reset
    Next MB
  createMenu
End Sub

Sub createMenu()
Dim i As Integer
' erstellt eine Schaltfläche
Application.StatusBar = "Bitte warten..."
Application.CommandBars("Reviewing").Visible = False
    Dim CB As CommandBar
    Dim CBP As CommandBarPopup
    Dim CBB As CommandBarButton
    Set CB = Nothing
On Error Resume Next
Set CB = CommandBars.Item("Worksheet Menu Bar")
Set CBP = CB.Controls.Add(Type:=msoControlPopup, temporary:=False)
    With CBP
     .Caption = "Outbound"
     End With
For i = 1 To 3
Set CBB = CBP.Controls.Add(Type:=msoControlButton, temporary:=False)
    With CBB

    Select Case i
        
    Case 1
        .Caption = "formating Data"
        .OnAction = "Prologs"

    Case 2
        .Caption = "Update"
        .OnAction = "Update"
    
    Case 3
        .Caption = "ABU"
        .OnAction = "ABU"
    End Select
    End With
    Next i
End Sub
Wuerde mich freuen wenn mir jemand helfen koennte diese Schaltflaeche zu loeschen.

Gruss
abu

  

Betrifft: hast du eine klitzekleine Vorstellung von: Rudi Maintaire
Geschrieben am: 12.01.2010 12:39:40

was da passiert? Ich würde dich ermorden, wenn du mir die Mappe schicken würdest.

    For Each MB In MenuBars
        MB.Reset
    Next MB

damit werden alle Anpassungen an allen Symbolleisten zurückgesetzt.

Wirf den Code weg und lösche das Control von Hand oder lösche createMenu aus Auto_Open und führe es aus.

Gruß
Rudi


  

Betrifft: Leider nicht... von: abu
Geschrieben am: 12.01.2010 12:53:58

Hallo Rudi,

Wenn ich mir den Code jetzt anschaue dann sehe ich auch das es alle Einstellungen zureucksetzt. Seinerzeit hat es meine Beduerfnisse erfuellt und ich habe nicht weiter darueber nachgedacht. Ok, habe es jetzt weg. Und den Code so geaendert:

Sub Auto_Open()
  createMenu
End Sub
und dann folgt das zweite Programm.
Ist das denn jezt so in Ordnung oder muesste ich wieder mit Morddrohungen rechnen wenn ich den jemanden zeige?

Gruss
abu


  

Betrifft: In Lebensgefahr bist du nicht mehr. von: Rudi Maintaire
Geschrieben am: 12.01.2010 13:07:43

Hallo
in DieseArbeitsmappe:

Private Sub Workbook_Open()
  createMenu True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  createMenu False
End Sub
in ein Modul:
Sub createMenu(blnCreate As Boolean)
  ' erstellt eine Schaltfläche
  Dim CB As CommandBar
  Dim CBP As CommandBarPopup
  Dim CBB As CommandBarButton
  Dim i As Integer
  Set CB = CommandBars.Item("Worksheet Menu Bar")
  On Error Resume Next
  CB.Controls("Outbound").Delete
  On Error GoTo 0
  If blnCreate Then
    Application.StatusBar = "Bitte warten..." 'wozu?
    Application.CommandBars("Reviewing").Visible = False
    Set CBP = CB.Controls.Add(Type:=msoControlPopup, temporary:=True)
    With CBP
      .Caption = "Outbound"
    End With
    For i = 1 To 3
      Set CBB = CBP.Controls.Add(Type:=msoControlButton, temporary:=True)
      With CBB
        
        Select Case i
          
          Case 1
            .Caption = "formating Data"
            .OnAction = "Prologs"
            
          Case 2
            .Caption = "Update"
            .OnAction = "Update"
            
          Case 3
            .Caption = "ABU"
            .OnAction = "ABU"
        End Select
      End With
    Next i
    Application.StatusBar = False
  End If
End Sub

Auto_open kannst du löschen

Gruß
Rudi


  

Betrifft: Puuhh... von: abu
Geschrieben am: 12.01.2010 13:21:34

...da hab ich ja noch mal die Kurve bekommen.

Habe diese Zeile geloescht: Application.StatusBar = "Bitte warten..."

Danke fuer Deine Unterstuetzung.

Gruss abu


  

Betrifft: loescht es nicht von: abu
Geschrieben am: 12.01.2010 13:02:06

Hallo Rudi,

ich stelle fest mir fehlt der Code zum loeschen. Also wenn ich denk das Addin ausschalte. Kannst Du mir dabei helfen?

Gruss
abu