Hallo Laika,
Die FaceId ist laut VBA-Hilfe für benutzerdefinierte
Symbolleisten immer Null.
ups, sorry, hab da nicht gelesen Ich benutze auch keine eigenen Symbolleisten, hab mir mal vor Jahren angeschaut wie das geht und gut iss. Die paar Makros die ich über Klick auf Symbole „oben“ steuere paassen noch gut rechts neben das Frageziechen oben in der Menueleiste.
Application.CommandBars(„Worksheet Menu Bar“).Controls(„Fadenkreuz“).FaceId
Auf diese Menueleiste bezieht sich da auch das „Worksheet Menu Bar“, die fest eingebauten haben alle englische Namen.
Und „Fadenkreuz“ ist da ein Symbol rechts neben dem Fragezeichen, was ich im Add-Manager durch Aktivierung oder Deaktivierung meiner Fadenkreuz.xla enstehen lasse oder verschwinden lasse.
Was du willst und was mein Fadenkreuz-Symbol ist, ist ein sogenannter Toggle-Button.
Damit wählt man zwei Modi aus. In meinem Fall wäre das Fadenkreuz EIN oder Fadenkreuz AUS. Und zwar beides durch Klick auf den GLEICHEN Button.
Um jetzt leicht zu erkennen welcher Modus grade eingeschaltet ist, so wechsle ich jeweils die Face-ID aus.
OnAction benutze ich nicht, könnte ich natürlich um je ein anderes Makro drauzulegen, aber ich nehme die andere Variante, das makro bleibt immer gleich, ianfangs des makros werte ich einfach die Face-ID-Nr aus, jenachdem reagiert das Makro anders.
Nach meinem Verständnis ist das also
eine interne Nummer der vordefinierten VBA-Icons.
Ja, jede XL-Version hat unteschiedlich viele, von hunderten bis tausende, deshlab sehe ich da für mich keinerlei Begrünmdung eines selbst zu malen oder umzufärben.
Ich hatte dazu hier was geschrieben so vor 6-8 Wochen, auch wie du dir alle anschauen kannst…
Ich habe trotzdem mal Deine Prozedur laufen lassen: Die Taste
(das dafür von mir erzeugte Symbol) verschwindet dann in der
Symbolleiste, ist aber als Lücke noch da und auch bedienbar!
Es ist komplett gelöscht, kriege es nur durch neu zeichnen
wieder hin.
Okay, mein Fehler, dann muß man wohl in einer eigenen Symbolleiste anders an die Sache rangehen, kann ich jetzt nix zu sagen, muß ich mir erst mal eine samt Symbolen schnitzen.
Was genau meinst du da mit tasten? Für mich ist eine Symbolleiste das was du siehst wenn du z.B. über Ansicht–Symbolleisten—Formular die Formularleiste „Holst“. Wo sind denn da Tasten?
Du hattest so ähnlich bei deiner Anfrage so für mich seltsame Wortwahlen benutzt. Da müssen wir erst mal abchecken was wir beide eigentlich genau meinen bevor wir aneinander vorbeireden.
Seltsam ist auch das Verhalten von VBA: Wenn ich die Taste
ansprechen will, an Stelle deines „Fadenkreuz“ muss ich die
Nummer der Taste auf der Leiste angeben (was ist „Fadenkreuz“
bei Dir? Name der Taste?), wobei Trennstriche nicht
mitzaehlen. Verpasse ich den Tasten einen Text, z.B.:
Toolbars(„Diverses“).ToolbarButtons(1).Name = „Werte
kopieren“
, dann muss ich Trennstriche mitzaehlen … na ja,
Kleinigkeit.
Da, schon wieder *gg* was sinnen das für Trennstriche, welche tasten.
Fadenkreuz habe ich ja schon erläutert.
Ist auch nix kriegerisches, es markiert nur farblich waagrecht und senkrecht die Zeilen und Spalten des gerade selektierten Bereiches, dient nur zur Übersicht bei vielen daten.
So wie sich manche aus gutem Grund jede zweite Zeile farbig machen um weniger oft mal in der Zeile zu verrutschen beim Ablesen, Eintragen.
Mit
.OnAction = ThisWorkbook.Name & „!EinAus“
kannste das Makro auswählen für das Symbol.
Ja, das funktioniert gut bei mir mit ActiveSheet.Shapes(NAME_TASTE).OnAction = „makroname“
Was hat nun ActiveSheet.Shapes(NAME_TASTE) mit einer Symbolleiste zu tun?
Gruß
Reinhard