symbolleiste



Excel-Version: 97 / NT
  

Re: symbolleiste

von: Andreas Gelezun
Geschrieben am: 16.04.2002 - 23:58:13


Ich habe genau das gleiche Problem gehabt, ich bin nach viel (sehr viel) Probiererei aber drauf gekommen. Hier mal meine Prozeduren:

Public Sub LeistenAnAus()
'Funktion: Schaltet die Menü und Symbolleisten aus, checkt vorher,
' welche eingeschaltet sind
' die aktiven Leisten werden im Array leisten(200) gemerkt
'
'Bemerkung(en): -
'© 2002, A.Gelezun

If DieseArbeitsmappe.leistenan = True Then
DieseArbeitsmappe.symanz = 0 ' Anzahl der am Anfang sichtbaren Leisten insgesamt wird hier gemerkt

For i = 1 To Application.CommandBars.Count
Select Case Application.CommandBars(i).Type
Case 0 ' "Symbolleiste"
If Application.CommandBars(i).Visible = True Then
DieseArbeitsmappe.symanz = DieseArbeitsmappe.symanz + 1 ' hochzählen
leisten(DieseArbeitsmappe.symanz) = Application.CommandBars(i).Index
Set cb = Application.CommandBars(i)
cb.Visible = False ' aus
End If
Case 1 ' "Menüleiste"
If Application.CommandBars(i).Visible = True Then
DieseArbeitsmappe.symanz = DieseArbeitsmappe.symanz + 1 ' hochzählen
leisten(DieseArbeitsmappe.symanz) = Application.CommandBars(i).Index
Set cb = Application.CommandBars(i)
cb.Enabled = False ' aus
End If
End Select
Next i
DieseArbeitsmappe.leistenan = True
Else
For i = 1 To DieseArbeitsmappe.symanz ' Anzahl am Anfang aktiver Leisten
Application.CommandBars(leisten(i)).Enabled = True ' an
Application.CommandBars(leisten(i)).Visible = True ' an
Next i
DieseArbeitsmappe.leistenan = True
End If
End Sub


Mit dieser Prozedur werden die Symbolleisten, die gerade vorhanden sind, ausgeblendet. Auch die Menüleiste wird unsichtbar gemacht (wird in der Proc extra behandelt, Case 1...) . In der Variablen DieseArbeitsmappe.Symanz, wird die Anzahl der aktiven Symbolleisten gespeichert, in der lokalen Variablen leisten(200) werden die Symbolleisten-Indizes gesichert. Am Ende setze ich für mein Programm ein Flag (DieseArbeitsmappe.leistenan) ob die Dinger an oder aus sind. Bei einem Aufruf , wo leistenan=True ist, werden die Leisten wieder eingeschaltet, die zuvor ausgeschaltet wurden.

Jetzt wird meine Leiste eingeschaltet:

Public Sub SymLeiste()
'Funktion: Erzeugt und schaltet meine Symbolleiste ein und aus
'
'Bemerkung(en): -
'© 2002, A.Gelezun

Dim sl As CommandBar
Dim sls As CommandBarButton

For Each sl In Application.CommandBars ' Nachsehen, ob die Leiste da ist und auch sichtbar
If sl.Name = "Meine Leiste" Then
If sl.Visible = True Then leistean = True ' ja, dann leistean=true
End If
Next sl

If leistean = False Then ' Leiste nicht sichtbar
Set sl = Application.CommandBars.Add("Meine Leiste")
On Error Resume Next

Set sls = sl.Controls.Add(Type:=msoControlButton, ID:=3)
With sls
.Style = msoButtonIconAndCaption
.Caption = "Speichern"
End With

Set sls = sl.Controls.Add(Type:=msoControlButton, ID:=4)
With sls
.Style = msoButtonIconAndCaption
.Caption = "Drucken"
End With
Else
Set sl = Application.CommandBars("Meine Leiste")
On Error Resume Next
sl.Delete

leistean = False
End If
End Sub

(Der Else-Zweig schaltet die erzeugte Leiste wieder aus).


Falls Du noch Probleme hast, dann melde dich per Mail bei mir...dann kann ich Dir vielleicht eine Beispiel-Tabelle schicken.

Gruß
Andreas

nach unten

Betrifft: symbolleiste
von: Stefan F.
Geschrieben am: 16.04.2002 - 13:39:11

Salut!

Ja, ja, schon oft gefragt und oft geantwortet, aber ich habe nun versucht einige Beiträge zu "eigene-Symbolleiste" anzuwenden, aber ohne Erfolg. Auch das "Anbinden" funktioniert wohl nicht so wie es soll.

Wer hat mir bitte nochmal den genauen Code bzw. die Vorgehensweise, damit ich nur meine eigene Symbolleiste beim Öffnen meiner Datei habe und die anderen nur beim normalen Excelöffnen.

Vielen Dank schon mal für die Zeit und Mühe!

Gruss

Stefan



nach oben   nach unten

Re: symbolleiste
von: Stefan F.
Geschrieben am: 17.04.2002 - 09:26:12

Vielen Dank schon mal und ich werde es gleich probieren. Gruß Stefan F.

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "symbolleiste"