Microsoft Excel

Herbers Excel/VBA-Archiv

Alle eingebauten Commandbars disablen

Betrifft: Alle eingebauten Commandbars disablen von: gröbi
Geschrieben am: 25.07.2008 10:00:36

Hallo,

ich möchte beim Starten einer Arbeitsmappe alle eingebauten Commandbars deaktivieren, also nicht ausblenden sondern nur funktionsuntüchtig machen. Beim Start sollen nur meine selbst erstellten Commandbars funktionsfähig bleiben.

Danke für Hinweise.

Gruß, Gröbi

  

Betrifft: AW: Alle eingebauten Commandbars disablen von: Rudi Maintaire
Geschrieben am: 25.07.2008 10:09:10

Hallo,
dann mach es doch. Sollte bei dem Level doch kein Prob sein.

Private Sub Workbook_Activate()
  Dim oCB As CommandBar
  For Each oCB In Application.CommandBars
    oCB.Enabled = Not oCB.BuiltIn
  Next
End Sub



Private Sub Workbook_Deactivate()
  Dim oCB As CommandBar
  For Each oCB In Application.CommandBars
    oCB.Enabled = True
  Next
End Sub


Gruß
Rudi


  

Betrifft: AW: Alle eingebauten Commandbars disablen von: gröbi
Geschrieben am: 25.07.2008 10:38:48

Deine Prozeduren macht das gleiche wie die meinigen, sie blenden die Commandbars aus. Die cb sind nicht mehr sichtbar. Das will ich aber nicht. Denn, wenn die Applikation in Deckung geht, dann guckt der User wie ein Autobus, wenn er ein anderes Workbook öffnet. Die Commandbars sind nämlich futsch.


Sub Eingebaute_Befehlleisten_ausblenden()
On Error Resume Next
Dim cb As CommandBar
For Each cb In Application.CommandBars
    If cb.BuiltIn = True Then
        cb.Enabled = False
    End If
Next cb
End Sub



Ich werde versuchen die einzelnen Controls jeder sichtbaren eingebauten Symbolleiste zu deaktivieren.

Gruß, gröbi.


  

Betrifft: AW: Alle eingebauten Commandbars disablen von: Rudi Maintaire
Geschrieben am: 25.07.2008 10:49:34

Denn, wenn die Applikation in Deckung geht, dann guckt der User wie ein Autobus, 


Ich werde versuchen die einzelnen Controls jeder sichtbaren eingebauten Symbolleiste zu deaktivieren.


Dann hat er nach nem Absturz lauter disablete Controls.

Gruß
Rudi


  

Betrifft: AW: Alle eingebauten Commandbars disablen von: gröbi
Geschrieben am: 25.07.2008 10:59:41

Da hast du recht. Ich habe mir für diesen Fall eine Workbook erstellt, daß beim Starten die CB enabled. Der User hat das aber nicht.

Diese Prozedur macht das gleiche wie die vorigen, außerdem habe ich die einzelnen Controlarten des Commandbars noch nicht berücksichtigt (Commandbarpopup usw...)

Sub Eingebaute_Befehlleisten_aktivieren()
On Error Resume Next
Dim cb As CommandBar
Dim cbb As CommandBarButton
Dim ctl As Control

For Each cb In Application.CommandBars
    If cb.BuiltIn = True And cb.Visible = True Then
        For Each cbb In cb.Controls
            cbb.Enabled = True
        Next cbb
    End If
Next cb
End Sub




Ich verstehe Microsoft nicht. Manchmal muß ich mich fragen, wo der Unterschied zwischen "visible = false" und "enabled = false" ist!

Feine Sache...

Gruß, Gröbi.


  

Betrifft: AW: Alle eingebauten Commandbars disablen von: gröbi
Geschrieben am: 25.07.2008 11:23:11

So gehts:

Sub Eingebaute_Befehlleisten_deaktivieren()
On Error Resume Next
Dim cb As CommandBar
Dim cbb As CommandBarButton
Dim ctl As Control
Dim i As Integer

For Each cb In Application.CommandBars
    If cb.BuiltIn = True And cb.Visible = True Then
        For i = 1 To cb.Controls.Count
            cb.Controls(i).Enabled = False
        Next i
    End If
Next cb
End Sub



Danke trotzdem.

Gruß, Gröbi


 

Beiträge aus den Excel-Beispielen zum Thema "Alle eingebauten Commandbars disablen"