Herbers Excel-Forum - das Archiv

.OnAction bei Symbolleisten

Bild

Betrifft: .OnAction bei Symbolleisten
von: Kristin

Geschrieben am: 14.12.2006 15:58:00
Hallo Ihr :)
mich machen diese Symbolleisten noch mal fertig ;) Vor einiger Zeit habe ich hier im Forum schon mal wegen der OnAction-Funktion nachgefragt (https://www.herber.de/forum/archiv/700to704/t702270.htm), aber irgendwie habe ich immer wieder Probleme damit.
Also: ICh habe eine Arbeitsmappe, die ein XLA nachläd, welches dann mit verschiedenen Funktionen zur Verfügung steht, unter anderem auch eine Symbolleiste erstellt. Das ganze Projekt ist jetzt schon älter und ich arbeite mit verschiedenen Versionen. Sprich Modul A1 sollte eine Symbolleiste S1 haben. Wird eine neuere Abreitsmappe geöffnet ruft sie XLA A2 auf und sollte S1 löschen und mit S2 (neu erstellt von A2) weiter arbeiten.
Nun habe ich jetzt schon ein paar Erfahrungen mit Symbolleisten und habe mir gedacht ich übergebe bei der OnAction Funktion einfach immer den Pfad der XLA (.OnAction = ThisWorkbook & "!Funktionsname").
Nun ja es funktioniert auch, aber (!) nur bedingt. Letztens öffne ich eine Vorlage inkl. XLA A1 und es wird auch die Symbolleiste S1 benutzt, dann schließe ich nur die Vorlage (das XLA bleibt offen im Hintergrund, da Excel noch geöffnet ist) und öffne später eine neue Vorlage die XLA A2 nachläd, welches wiederum die Symbolleiste S2 erstellt und S1 löscht da nicht mehr gebraucht. Toll soweit, aber: wenn ich auf einen Button klicke, dann benutzt Excel das A1 (!!) obwohl beim auslesen der OnAction-Funktion/Wert = XLA A2 steht.... das macht mich wahnsinnig... wozu kann ich die Datei da überhaupt festlegen, wenn das nicht ausgelesen wird? Sobald ich das XLA A1 nicht mehr auf habe, nimmt er auch A2... hat es mit der Deklaration der Funktionen zu tun? Ich weiß nicht weiter... meine ganze Versionierungs-Idee ist über den Haufen geworfen.
Weiß jemand Rat?
vielen Dank und Gruß,
Kristin
Bild

Betrifft: Link anklickbar gemacht
von: Reinhard
Geschrieben am: 14.12.2006 20:13:52
Hi Kristin,
lass bitte vor und nach Links ein Leerzeichen.
https://www.herber.de/forum/archiv/700to704/t702270.htm
Gruß
Reinhard
Bild

Betrifft: AW: keine Ideen zu dem Problem? bitte helft mir.
von: Kristin
Geschrieben am: 18.12.2006 15:28:52
Hallo noch mal,
weiß hier wirklich kein Profi hier Rat?
Ich habe keine Ahnung wie ich das ganze umgehen kann... wenn etwas unklar ist bei meinem Problem, bitte Bescheid geben.
Grüße,
Kristin
Bild

Betrifft: AW: .OnAction bei Symbolleisten
von: Gerd
Geschrieben am: 18.12.2006 21:19:33
Hi,
(.OnAction = ThisWorkbook & "!Funktionsname"). Ganz schlecht! Verwende den Prozedurnamen
und verzeige anhand eines Parameters, z.B. ActionControl.Tag und Application.Run
mfg Gerd
Bild

Betrifft: AW: .OnAction bei Symbolleisten
von: Kristin

Geschrieben am: 20.12.2006 10:45:44
Hallo Gerd,
nehmen wir mal an ich habe eine Funktion oder auch Prozedur mit dem Namen
"druckeZellen()" dann schreibe ich beim erstellen der Symbolleiste normalerweise nur
.OnAction = druckeZelle.
Um bei fast identischen Dateien die mit der richtigen Versionsnummer anzusprechen habe ich mir überlegt
.OnAction = ThisWorkbook.Name & "!druckeZelle" zu nutzen. in der Hoffnung Excel spreche das richtige Modul an.
Nun habe ich mich ein wenig umgesehen - hier ein Link, wo das Problem allgemeiner beschrieben wird: http://www.xlam.ch/pos/commandbar.htm Stichwort: "Wie werden Datei-/Pfad-Angaben eines Steuerelementes mit zugewiesenem Makro gespeichert?" leider schreibt der Autor hier, dass er eine Lösung später nachreicht... doch ich finde sie nicht.
Ich habe jetzt noch folgendes getestet:
.OnAction = ThisWorkbook.Name & "!Projektname.Modulname.druckeZelle" was auch funktioniert, aber ich würde gern wissen was mit der Pfadangabe nicht stimmt. Es scheint mir ein Bug zu sein, aber es muss doch eine Lösung dafür geben...
Wie funktioniert dein Ansatz? Du übergibst den Tag an eine Funktion die dann entsprechend weiterleitet? oder wie genau?
danke für den Ansatz einer Idee,
kristin
 Bild
Excel-Beispiele zum Thema ".OnAction bei Symbolleisten"
Symbolleistenschaltfläche hinzufügen Symbolleisten ein-/ausblenden
Löschen überflüssiger Symbolleisten Alle Menüs und Symbolleisten ausblenden
Symbolleisten beim Öffnen aus-, beim Schließen einblenden Alle Menü- und Symbolleisten mit Ihren Schaltflächen auflisten
Doppelklick-Feature für Tabelle und Symbolleisten ausschalten Aufruf des Symbolleisten-Anpassen-Dialogs verhindern