Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Umschaltfunktion in eigenem Commandbar?!

Umschaltfunktion in eigenem Commandbar?!
14.05.2008 11:43:59
Andreas
Hallo Herber Fans,
nachdem ich es gestern hinbekommen habe, ein Sub Menü in einem eigenen Commandbar zu generieren erschloß sich mir der Gedanken, ob es möglich ist, eine Art „Umschalt- bzw. Toggle“ Funktion in einem Commandbar zu integrieren?
Ich nehme an, alle die sich mit VBA beschäftigen, haben schon beobachtet, daß in der Symbolleiste „Visual Basic“ der Button für den Entwurfsmodus orange hinterlegt wird, wenn der Entwurfsmodus aktiviert wurde. Diese farbliche Hinterlegung verschwindet dann auch wieder bei Deaktivierung. Auch beim Menüpfad Daten/ Filter/ AutoFilter ist das möglich. Dort erscheint neben dem Wort AutoFilter bei Aktivierung des Gleichen auch ein Haken, der bei Deaktivierung wieder verschwindet.
Ist eine derartige, vergleichbare (Toggle-) Funktionalität auch für einen selbst kreierten Commandbar möglich? Ich habe in der F1 Hilfe und auch hier im Herber Forum schon nach sehr konkreten Stichworten wie bspw. „controls.add“ gesucht, um konkrete Code- Ideen zu bekommen. Aber bisher ohne Erfolg.
Ich würde mich freuen, wenn jemand von Euch aus dem Forum mir eine Anregung geben kann, mit welchem VBA Code/ Konstrukt dieses realisierbar ist.
https://www.herber.de/bbs/user/52341.xls
Vielen Dank und Grüße,
Andreas Hanisch

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Siehe http://www.excel-addins.de/addins12.htm
14.05.2008 11:52:00
NoNet
Hallo Hanses,
Bernd Augustin hat auf seiner Webseite ein tolles Beispiel für die Erstellung einer Commandbar/Menüleiste mit unterschiedlichen Elementen per VBA.
http://www.excel-addins.de/addins12.htm
Es lohnt sich auf jeden Fall, dieses Musterbeispiel herunterzladen und den VBA-Code anzuschauen.
Viel Spaß und Erfolg, NoNet

Kleine Anmerkung zu Togglebutton
14.05.2008 12:19:00
Renee
Hi beide,
Das Beispiel zeigt sicher schön die verschiedenen Möglichkeiten. Bei einem Togglbutton würde ich aber Bernd's Vorschlag so korrigieren:

Sub Ein_Aus()
If CommandBars.ActionControl.State Then
CommandBars.ActionControl.FaceId = 342
CommandBars.ActionControl.TooltipText = "Es ist ausgeschaltet!"
Else
CommandBars.ActionControl.FaceId = 352
CommandBars.ActionControl.TooltipText = "Es ist eingeschaltet!"
End If
CommandBars.ActionControl.State = Not (CommandBars.ActionControl.State)
End Sub


Das hat den Vorteil, das mit einer direkten Referenzierung des gedrückten Buttons gearbeitet wird!
GreetZ Renée

Anzeige
AW: Kleine Anmerkung zu Togglebutton
14.05.2008 16:10:56
Andreas
Hi NoNet und Hallo Renée,
das ist ja mal ein geniales Beispiel, was an benutzerdefinierten Menüs über VBA so alles möglich ist. Ich habe mir den Code angesehen und in das bestehende Gerüst, was ich hatte, integriert. Ein paar kleine Fragen sind leider noch geblieben.
Ich habe den Toggle Button einmal in ein Sub Menü gepackt und einmal so wie in dem Beispiel. Im Commandbar direkt färbt sich der Button durchgängig ein. Im Submenü färbt sich nur der Bereich unter dem geänderten Lämpchen. Im Code für die Kreierung des Sub Menüs habe ich ein bißchen mit den Objekten experimentier, die von .controls.Add hinzugefügt werden. Da hatte ich aber zum Teil Typenunverträglichkeiten. Vom Layout her sieht das Sub Menü anders aus als ein Button im Commandbar, von daher nehme ich an, es ist für ein SubMenü nicht vorgesehen. Oder hättet ihr eine Lösung, das Sub Menü komplett durchzufärben.
Leider funktioniert auch der ToolTipText im SubMenü nicht korrekt. Auch da konnte ich keine Lösung herbeiführen. Habe versucht im Ein_Aus Code Commandbars.ActionControl gegen CommandBarPopUp auszutauschen – ohne Erfolg.
Das sind die Feinheiten bezüglich des Toggle Buttons im Commandbar/ Menü. Jetzt geht es zum Sinn eines solchen Buttons. Ich habe ein Makro, welches in Pivot Tabellen die Fensterfixierung überprüft und immer neu ausrichtet. FensterFixierungen in Pivottabellen bleiben meiner Erfahrung nach nicht lange an der korrekten Stelle. Deswegen diese Makro. Dieses läuft im Hintergrund im VBA Objekt Tabelle2 auf dem Event Ereignis „PivotTableUpdate“. Wenn ich nun auf den Commandbutton drücke und diesen somit aktiviere, erst dann soll die PivotUeberwachung „scharf“ geschaltet sein. Ich wollte es über eine globale Variable vom Typ Long steuern, die nach der Zeile „CommandBars.ActionControl.TooltipText = "Es ist eingeschaltet!"“ (Modul: Ein_Aus) auf 1 setze und das Makro zur Überwachung (Modul: Ueberwachung) erst nach einer IF Abfrage starte.
Aber in allen Varianten, in denen ich es probiert habe, hat es nicht funktioniert. Die Pivotüberwachung ist immer aktiv. Woran liegt es, daß der ToggleButton seinen Zweck noch nicht ganz erfüllt?
Wißt ihr, wie dieser Button zu seinem vollen Zweck verholfen werden kann? Wo ist der Denkfehler? Ich hatte schon einen ähnlichen Thread hier gefunden und verfolgt, aber der ist leider ohne Ergebnis beendet worden.

Die Datei https://www.herber.de/bbs/user/52349.xls wurde aus Datenschutzgründen gelöscht


Vielen, vielen Dank und Grüße,
Andreas Hanisch

Anzeige
AW: Kleine Anmerkung zu Togglebutton
14.05.2008 16:32:00
Reinhard
Hi Andreas,

Sub Ein_Aus_2()
If CommandBars.ActionControl.State Then
CommandBars.ActionControl.FaceId = 342
CommandBars.ActionControl.TooltipText = "Es ist ausgeschaltet!"
PivotUeberwachung = 0
Else
CommandBars.ActionControl.FaceId = 352
CommandBars.ActionControl.TooltipText = "Es ist eingeschaltet!"
PivotUeberwachung = 1
End If
CommandBars.ActionControl.State = Not (CommandBars.ActionControl.State)
End Sub


Gruß
Reinhard

AW: Kleine Anmerkung zu Togglebutton
14.05.2008 16:35:19
Renee
Hi Andreas,
In Submenüs sehe Buttons leicht anders aus (kein Rahmen, dafür blauer Select Balken) und sie verlieren die Tooltip-Eigenschaft. Dafür könntest du mit der .Caption Eigenschaft arbeiten.
Z.B. so:

Sub Ein_Aus_3()
If CommandBars.ActionControl.State Then
CommandBars.ActionControl.FaceId = 342
CommandBars.ActionControl.Caption = "Pivot Ueberwachung (AN)"
PivotUeberwachung = 0
Else
CommandBars.ActionControl.FaceId = 352
CommandBars.ActionControl.Caption = "Pivot Ueberwachung (AUS)"
PivotUeberwachung = 1
End If
CommandBars.ActionControl.State = Not (CommandBars.ActionControl.State)
End Sub


GreetZ Renée

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige