Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
996to1000
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Symbolleisten per VBA aus-/einblenden

Symbolleisten per VBA aus-/einblenden
30.07.2008 06:47:00
Oliver
Guten Morgen zusammen,
ich lasse mir bei bestimmten Dateien über ein AddIn sehr viele Befehle in den Symbolleisten deaktivieren. Dies mache ich mit folgendem Modul:

Sub Menue_deaktivieren()
'***Variablen deklarieren***
Dim CBB1, CBB2, CBB3, CBB4, CBB5 '***
'***Variablen fuellen***
Variablen.Var_Menue
'***Menuepunkte deaktivieren***
On Error Resume Next
For Each CBB1 In Application.CommandBars
For Each CBB2 In CBB1.Controls
If IsError(Application.Match(CBB2.ID, M1_ID, 0)) = True And IsError(Application.Match(CBB2.  _
_
ID, M2_ID, 0)) = True Then
CBB2.Enabled = False
End If
For Each CBB3 In CBB2.Controls
If IsError(Application.Match(CBB3.ID, M1_ID, 0)) = True And IsError(Application.Match(CBB3.  _
_
ID, M2_ID, 0)) = True Then
CBB3.Enabled = False
End If
For Each CBB4 In CBB3.Controls
If IsError(Application.Match(CBB4.ID, M1_ID, 0)) = True And IsError(Application.Match(CBB4. _
_
ID, M2_ID, 0)) = True Then
CBB4.Enabled = False
End If
For Each CBB5 In CBB4.Controls
If IsError(Application.Match(CBB5.ID, M1_ID, 0)) = True And IsError(Application.Match( _
CBB5.ID, M2_ID, 0)) = True Then
CBB5.Enabled = False
End If
Next CBB5
Next CBB4
Next CBB3
Next CBB2
Next CBB1
On Error GoTo 0
End Sub


Beim Schließen der Datei führe ich folgendes Makro aus um die Befehle wieder zu aktivieren:


Sub Menue_aktivieren()
'***Variablen deklarieren***
Dim CBB1, CBB2, CBB3, CBB4, CBB5 '***
'***Menuepunkte deaktivieren***
On Error Resume Next
For Each CBB1 In Application.CommandBars
If CBB1.Name  " " Then
CBB1.Enabled = True
For Each CBB2 In CBB1.Controls
CBB2.Enabled = True
For Each CBB3 In CBB2.Controls
CBB3.Enabled = True
For Each CBB4 In CBB3.Controls
CBB4.Enabled = True
For Each CBB5 In CBB4.Controls
CBB5.Enabled = True
Next CBB5
Next CBB4
Next CBB3
Next CBB2
End If
Next CBB1
On Error GoTo 0
End Sub


In der Array-Variablen M1_ID und M2_ID stehen verschiedene ID-Nummern von Befehlen, die ich weiterhin aktiv lassen möchte. Die Variablen werden über "Variablen.Var_Menue" benutzerabhängig geladen.
Ich habe bei mir nur zwei Benutzerdefinierte Symbolleisten "Symbole_1" und "Symbole_2" sichtbar. Wenn ich die Befehle wieder aktiviert habe, sieht mein Excel richtig aus. Schließe ich nun Excel und öffne es wieder, dann sind meine Symbolleisten komplett weg und Excel hat seine beiden Standardsymbolleisten "Standard" und "Format" wieder aktiviert.
Unter "Symbolleisten - Anpassen" gibt es einen Punkt "Standard- und Formatsymbolleiste in zwei Zeilen anzeigen", der mit Haken versehen ist, aber nicht zum Auswählen ist. Dann ist mir aufgefallen, dass Excel beim Schließen die Excel11.xlb überschreibt, obwohl an den Menüs nichts geändert wurde.
Hatte schon mal jemand das Phänomen oder habe ich in meinen Codes irgendwas falsch?
Gruß,
Oliver.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Symbolleisten per VBA aus-/einblenden
30.07.2008 12:04:00
Oliver
Hallo,
ich habe die Lösung gefunden, was beim Ausblenden passiert. Die Symbole mit den IDs "9062-9070, 9072-9080, 9997-9999" dürfen nicht auf enabled = false gesetzt werden. Sobald dies geschieht überschreibt Excel beim Schließen die Excel?.xlb und man hat die Standardeinstellungen parat.
Gruß,
Oliver.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige