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
))
Gruß Daniel
‚Cursor‘ beim Starten verschwunden
Hallo Reinhard,
mir ist gerade aufgefallen, dass nach Einfügen Deines genialen Codes
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
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
):
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