Schaltflächensymbol

19/02/2009 - 13:37 von Helmuth Welser | Report spam
Excel 2000/2003

Hallo zusammen,

ich möchte nur in einer bestimmten Mappe in der Symbolleiste ein bestimmtes
Symbol haben. Nur in dieser Mappe soll das Symbol erscheinen. (Neben den
"üblichen").
Wie ist das zu machen?

Danke und Gruß
Helmuth
 

Lesen sie die antworten

#1 Andreas Killer
19/02/2009 - 16:11 | Warnen spam
Helmuth Welser schrieb:

ich möchte nur in einer bestimmten Mappe in der Symbolleiste ein bestimmtes
Symbol haben. Nur in dieser Mappe soll das Symbol erscheinen. (Neben den
"üblichen").
Wie ist das zu machen?


Sehr schwierig, denn das bedeutet das die Mappe selber das Symbol
anlegen und wieder entfernen muss.

Du müsstest zuerst einmal beim Öffnen der Mappe feststellen ob es die
Symbolleiste in der Du Dein Symbol haben möchtest a.) überhaupt gibt
und b.) ob diese sichbar ist.

Halt zurück, zuallerallererst musst Du Dir den Zustand der bewußten
Leiste abspeichern!

Falls nicht a.) dann müsstest Du eine Symbolleiste anlegen und wenn
nicht b.) dann diese evt. sichbar machen?

Function CommandBarExists(CBname As String) As Boolean
'Prüft ob es die Symboleiste CBname gibt
Dim Cb As CommandBar
For Each Cb In CommandBars
If Cb.Name = CBname Then
CommandBarExists = True
Exit Function
End If
Next
CommandBarExists = False
End Function

Dann musst Du prüfen ob es nicht schon einen Button mit diesem Namen gibt.

Function ButtonExists(ByVal ButtonName As String) As Boolean
'Prüft ob es den Button gibt
Dim I As Integer, J As Integer
ButtonExists = True
For I = 1 To CommandBars.Count
For J = 1 To CommandBars(I).Controls.Count
With CommandBars(I).Controls(J)
If .Caption = ButtonName Then Exit Function
End With
Next
Next
ButtonExists = False
End Function

Falls doch kannst Du das Control mit .Visible = false unsichtbar und
mit .Enabled = False deaktivieren.

Wenn nicht, dann müsstest Du das Control anlegen, ein Icon reinzaubern
das Du in einer Userform halten kannst und das Makro zuweisen.

Dafür habe ich nichts fertiges in der Schublade, sorry.

Nun ja, wenn Du das nun alles gemacht hast, dann musst Du beim
Schliessen der Mappe den ganzen Vorgang auch wieder rückgàngig machen
und den Ursprungszustand wieder herstellen.

Und spàtestens hier wird's haarig, denn wenn Dein Code abstürtzt und
Excel zugeht ohne den Button zu entfernen, dann hast Du keine Chance
mehr das wieder gerade zu biegen.

Nochmal: IMHO ist es keine gute Idee dem User sein Excel zu verhunzen
und ab XL2007 geht das ganze eh nicht mehr.

Mach lieber einen Button ins Sheet, ist in Sekunden gemacht, sicher,
und funktioniert mit allen Excel-Versionen. ;-))

Andreas.

PS.: Wenn es nur Deinen eigenen Rechner betrifft, dann kannst Du den
Button natürlich von Hand erstellen und diesen dann beim
Öffnen/Schließen der Mappe an-/ausschalten:

Sub ButtonOnOff(ByVal ButtonName As String, ByVal OnOff As Boolean)
'Schaltet den Button an und aus
Dim I As Integer, J As Integer
For I = 1 To CommandBars.Count
For J = 1 To CommandBars(I).Controls.Count
With CommandBars(I).Controls(J)
If .Caption = ButtonName Then
.Enabled = False
.Visible = False
End If
End With
Next
Next
End Sub

Ähnliche fragen