Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Symbol einrichten

Symbol einrichten
22.02.2006 20:09:29
Günther
Hallo!
Ich würde gerne ein Symbol einrichten und mit einem Makro hinterlegen. Es geht dabei um das Ein- und Ausschalten einer Eigenschaft (ähnlich wie Fettdruck).
Mein Wunsch ist folgender:
Gleich wie beim Symbol Fettdruck soll das Symbol die aktuelle Einstellung der Eigenschaft anzeigen. Das Symbol soll farbig hinterlegt sein, wenn die Eigenschaft aktiviert ist und die farbige Hinterlegung soll wieder verschwinden, wenn man es durch nochmaliges Anklicken wieder ausschaltet.
Das Makro zum Ein-/Ausschalten der Eigenschaft selbst ist kein Problem. Aber wie kann ich das mit der Änderung des Schaltflächen-Layouts hinkriegen.
Danke im Voraus!
gg

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Symbol einrichten
22.02.2006 20:17:55
Uduuh
Hallo,
mal als Idee:
im Worksheet_selectionchange die Eigenschaft der aktiven Zelle prüfen und den Status der Schaltfläche setzten. So nach dem Motto
with meinButton
.state=IIf(Target.font.bold,msobuttonup,msobuttondown)
end with
Gruß aus’m Pott
Udo

AW: Symbol einrichten
22.02.2006 20:39:53
GrundGünther
Hallo!
Scheint nicht zu funktionieren.
Folgender Code zeigt keinerlei Wirkung auf das Aussehen der Schaltfläche:
Set meinbutton = Application.CommandBars("Test").Controls("Testbutton")
meinbutton.State = msobuttondown 'oder msobuttonup
Grüße
gg
Anzeige
AW: Symbol einrichten
22.02.2006 21:02:59
Uduuh
Hallo,
bei einer Schaltfläche vom Typ msoControlButton sollte das eigentlich gehen.
Vielleicht hilft eine Beispiedatei weiter.
Gruß aus’m Pott
Udo

AW: Symbol einrichten
22.02.2006 21:14:20
Günther
Anbei die Mappe Button.xls
https://www.herber.de/bbs/user/31333.xls
Symbolleiste 'Test' einblenden und Makros neu zuweisen, weil die Mappe nach dem Upload anders heißt - war zu faul, was zu tricksen ;-)
Ich habe den Button ganz normal über das Dialogfenster "Anpassen" erstellt. Vielleicht liegts daran.
Grüße
gg
Anzeige
AW: Symbol einrichten
22.02.2006 22:01:25
Uduuh
Hallo,
anscheinend klappt das nur mit zur Laufzeit erstellen Symbolleiten. Mal ganz grob (man möge mir verzeihen)

Sub test()
Dim myBar As CommandBar, myBarControl As CommandBarButton
Const strBar As String = "Test"
On Error Resume Next
Application.CommandBars(strBar).Delete
Set myBar = CommandBars _
.Add(Name:=strBar, Temporary:=True)
With myBar
.Visible = True
Set myBarControl = .Controls.Add
With myBarControl
.State = msoButtonDown
.OnAction = "prcChangeState"
End With
Set myBarControl = .Controls.Add
With myBarControl
.State = msoButtonUp
.OnAction = "prcChangeState"
End With
End With
End Sub


Sub prcChangeState()
Dim c
For Each c In Application.CommandBars.ActionControl.Parent.Controls
c.State = msocontolbuttondown
Next c
With Application.CommandBars.ActionControl
.State = IIf(.State = msoButtonUp, msoButtonDown, msoButtonUp)
End With
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Symbol einrichten
23.02.2006 00:11:35
Günther
Hallo!
Danke vielmals - das ist das, was ich gesucht habe!
Es ist mir zwar unklar, warum das mit händisch erstellten Symbolen nicht geht, aber was solls.
Wie belegt man übrigens zur Laufzeit das Symbolbild auf dem Symbol? Geht das überhaupt?
Eine Kleinigkeit bei Deinem Code ist mir unklar: die Konstante msocontolbuttondown in der For-Each Schleife
(auch wenn man msocontrolbuttondown draus macht, kennt er sie nicht)
Meintest Du: msoButtonDown ?
Grüße
gg
AW: Symbol einrichten
23.02.2006 10:46:55
u_
Hallo,
Bild auf dem Symbol: FaceID festlegen.
msocontolbuttondown: Du hast Recht, da hat er sich verschrieben.
Hab mal ein bisschen in dem Code rumgepfuscht:

Sub test()
Dim myBar As CommandBar, myBarControl As CommandBarButton
Const strBar As String = "Test"
On Error Resume Next
Application.CommandBars(strBar).Delete
Set myBar = CommandBars _
.Add(Name:=strBar, Temporary:=True)
With myBar
.Visible = True
Set myBarControl = .Controls.Add
With myBarControl
.Tag = "btn1"
.Style = msoButtonIcon
.FaceId = 38
.State = msoButtonUp
.OnAction = "prcChangeState"
End With
Set myBarControl = .Controls.Add
With myBarControl
.Tag = "btn2"
.Style = msoButtonIcon
.FaceId = 40
.State = msoButtonUp
.OnAction = "prcChangeState"
End With
End With
End Sub


Sub prcChangeState()
Dim c
With Application.CommandBars.ActionControl
For Each c In .Parent.Controls
If c.Tag <> .Tag Then
c.State = msoButtonUp
End If
Next c
.State = IIf(.State = msoButtonDown, msoButtonUp, msoButtonDown)
End With
End Sub

Gruß
Geist ist geil!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige