Alle Menuleisten ausblenden (bei Start + Makro)

Hallöchen,

ich möchte gerne bei (m)einer Rangliste (http://www.kingpong.de/rangliste/rangliste_beta2.xls), die auf kleineren Monitoren viel Platz beansprucht, gerne beim Start alle Excel-Menuleisten ausblenden. Die Leisten, die ausgeblendet werden, sollten beim Beenden natürlich wieder eingeblendet werden. Weiterhin würde ich gerne zwei Buttons erstellen, wo die beiden Möglichkeiten extra anwählbar sind.

Ich hab im Internet zwei Sachen gefunden. Die erste Quelle (http://www.herber.de/mailing/volumina/014798x.htm#) hab ich 1 zu 1 in ein Klassenmodul übernommen, allerdings klappt das in meiner Rangliste nicht. Es gibt beim Starten der Rangliste folgendes Problem:

Fehler beim Kompilieren
Außerhalb einer Prozedur ungültig

Weiterhin weiß ich hierbei nicht, wie ich damit zwei Buttons zum manuellen ein- und ausschalten belegen kann.

Aus der 2. Quelle (http://www.herber.de/forum/archiv/104to108/t105703.htm) werde ich nicht schlau, wie ich die ausgeblendeten Leisten nachher wieder einblenden kann.

Viele Grüße,
Daniel

Hallo Daniel,
zu 1), lösch da dein neu angelegtes Klassenmodul.

In „DieseArbeitsmappe“:

Option Explicit
Private Sub Workbook\_Open()
 Dim wks As Worksheet
 Call CmdBarsAus
 For Each wks In Worksheets
 If wks.Name "CmdBars" Then
 wks.Protect
 wks.EnableSelection = xlUnlockedCells
 End If
 Next wks
 'Call Baukasten\_unsichtbar
 ThisWorkbook.Protect Structure:=True, Windows:=False
 'Beim Öffnen dieser Datei sollte in Zukunft Excel und auch das Fenster maximiert sein!
 Application.WindowState = xlMaximized
 ThisWorkbook.Windows(1).WindowState = xlMaximized ' diese Zeile gehört dazu!
 'Tabellenansicht wird maximiert:
 If ActiveWindow.WindowState xlMaximized Then ActiveWindow.WindowState = xlMaximized
End Sub
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
 Call CmdBarsEin
End Sub

In ein normales Modul:

Option Explicit
Sub CmdBarsEin()
 Dim iRow As Integer
 iRow = 1
 With ThisWorkbook.Worksheets("CmdBars")
 Do Until IsEmpty(.Cells(iRow, 1))
 Application.CommandBars(.Cells(iRow, 1) \_
 .Value).Visible = True
 iRow = iRow + 1
 Loop
 .Columns(1).Clear
 End With
End Sub

Sub CmdBarsAus()
Dim oBar As CommandBar
Dim iRow As Integer
Dim vorhanden As Boolean
Dim wks As Worksheet
For Each wks In Worksheets
 If wks.Name = "CmdBars" Then vorhanden = True
Next wks
If Not vorhanden Then
 Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
 ActiveSheet.Name = "CmdBars"
End If
ThisWorkbook.Protect Structure:=False, Windows:=False
Worksheets("CmdBars").Visible = xlVeryHidden
ThisWorkbook.Protect Structure:=True, Windows:=False
For Each oBar In Application.CommandBars
 If oBar.Visible And oBar.Type msoBarTypeMenuBar Then
 iRow = iRow + 1
 With ThisWorkbook.Worksheets("CmdBars")
 .Cells(iRow, 1).Value = oBar.Name
 oBar.Visible = False
 End With
 End If
Next oBar
End Sub

Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

DANKE!
Hallo Reinhard,

vielen Dank, hat einwandfrei geklappt - wie immer :wink:))

Gruß Daniel

‚Cursor‘ beim Starten verschwunden
Hallo Reinhard,

mir ist gerade aufgefallen, dass nach Einfügen Deines genialen Codes :wink: beim Start der Rangliste der „Cursor“ nicht mehr angezeigt wird. Ich bekomm ihn erst wieder, wenn ich via Button den Blattschutz abschalte. Er bleibt auch da, wenn ich den Schutz wieder aktiviere. Weißt Du, was ich noch in „DieseArbeitsmappe“ eintragen muss, damit der „Cursor“ von Anfang an sichtbar ist?

Viele Grüße,
Daniel

http://www.kingpong.de/rangliste/rangliste_beta3.xls

mir ist gerade aufgefallen, dass nach Einfügen Deines genialen
Codes :wink: beim Start der Rangliste der „Cursor“ nicht mehr
angezeigt wird. Ich bekomm ihn erst wieder, wenn ich via
Button den Blattschutz abschalte. Er bleibt auch da, wenn ich
den Schutz wieder aktiviere. Weißt Du, was ich noch in
„DieseArbeitsmappe“ eintragen muss, damit der „Cursor“ von
Anfang an sichtbar ist?
http://www.kingpong.de/rangliste/rangliste_beta3.xls

Hallo Daniel,
ach genial *g *abwink*, ich habe doch dur deine Workbook_open und die andere workbook_open zusammengelegt.
Ich kann das jetzt nicht nachvollziehen, bei mir (Win98, Xl2000) ist der Cursor vorhanden und wechselt auch korrekt sein Bild wenn ich über Buttons oder über die roten Bildflächen fahre.

Welche XL-Version hast du denn?
Gruß
Reinhard

Screenshot vom ‚fehlenden Cursor‘
Hallo Reinhard,

ich habe WinXP und Office 2003. Bei einem Freund (gleiche Bedingungen) ist das genauso. Ich habe von zwei Beispielen Screenshots gemacht, damit Du nachvollziehen kannst, was ich meine (links ist jeweils das Problem, rechts so wie es sein sollte :wink:):
www.kingpong.de/rangliste/Cursor.gif

Es wird wahrschenilich an Office 2003 liegen. Bei GHoogle bin ich nur leider zu keiner Lösung gekommen.

Viele Grüße,
Daniel