Autor
|
Thema: Symbolleiste in XLS verteilen und ändern (2286 mal gelesen)
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003
|
erstellt am: 20. Okt. 2011 18:06 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine XLS, die hat ein paar einfache Makros und eine Symbolleiste, welche zwei der Makros aufruft. Die lag im Netzwerk unter p:\\excel2006\test.xls. Jeder, der die Datei öffnete, bekam die Makros und die Symbolleiste. Jetzt habe ich die Datei verschoben nach p:\\excel2011\test.xls, sonst unverändert belassen. Jeder, der die Datei öffnet und die Symbolleiste verwendet, bekommt jetzt die Fehlermeldung:
Code: "Kann das Makro p:\\excel2006\test.xls!makro1 nicht finden!"
Lösung: Man muss die XLS schliessen, dann die Symbolleiste löschen, die XLS wieder öffnen - fertig. Vermuteter Hintergrund: Anscheinend werden beim ersten Öffnen der XLS die Informationen in den aktuellen PC übernommen und dann so belassen, egal was mit der XLS passiert. Auch wenn der Ersteller den Makro ganz explizit direkt aufruft "makro1", wird der Pfad dann irgendwie ergänzt zu "p:\\excel2006\test.xls!makro1". Frage: - Muss das so sein? - Wie kann man das sauber vorbereiten? - Wie kann ich das reparieren, ohne dass ich alle MA auffordern muss, ihre Symbolleiste zu löschen? - Was mache ich, wenn ich in der Symbolleiste noch einen Button ergänzen will? Das ganze Spiel wieder von vorne? Schönen Abend noch Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) [Diese Nachricht wurde von Peter2 am 20. Okt. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 20. Okt. 2011 20:21 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Guten Abend Peter2, vor vier Jahren hatte ich ein Phänomen mit verschwundenen Symbolleisten. Weil es soooo lang her ist, weiß ich leider wenig aktuelles dazu , nur soviel: Die Einstellungen der Symbolleisten (bis xls 2003?) werden in einer .xlb im User-Verzeichnis abgelegt. Zum Thema Symbolleiste gab's schon einiges hier im Forum. Weitere Stichworte: PERSONL.XLS/XLA, AddIn. Beide Links enthalten weiterführende Links... Gegenfrage: Makros und Symbolleiste sind in der Mappe test.xls gespeichert? Mich wundert auch, dass ein reines Verschieben der Mappe von 2006 --> 2011 zu einem solchen Verhalten führt. Was passiert denn, wenn Du (nur Du!) in der "neuen" Mappe (Verzeichnis 2011) die Symbolleisten anpasst - hinter den Schaltflächen sollte der Pfad zum Makro stehen. Kannst Du den 2006...-Kram einfach entfernen? Warum auch immer Excel sich das so "gemerkt" hat, vielleicht lässt sich das ja umgehen? Für weitere Schaltflächen innerhalb der Mappe sollte so etwas (eigentlich) nicht passieren. Lösung interessiert mich - Viel Glück ! ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 20. Okt. 2011 22:18 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Zitat: Original erstellt von Peter2: Die lag im Netzwerk unter p:\\excel2006\test.xls. Jeder, der die Datei öffnete, bekam die Makros und die Symbolleiste.Jetzt habe ich die Datei verschoben nach p:\\excel2011\test.xls, sonst unverändert belassen. Jeder, der die Datei öffnet und die Symbolleiste verwendet, bekommt jetzt eine Fehlermeldung
so ein Verhalten kenne ich irgendwie nicht... Aber da bei dir XL den Pfad p:\\excel2006\ gemerkt hat, versuche mal diese Datei wieder in den Ordner p:\\excel2006\ zu verschieben, die Datei aus diesem Ordner zu öffnen und aus Excel heraus diese Datei auf p:\\excel2011\test.xls zu speichern. Vielleicht biegt XL diese Eigenart um? Ansonsten seht im Code vielleicht die Adressierung auf p:\\excel2006\? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Comos User Mitglied
Beiträge: 112 Registriert: 23.03.2010
|
erstellt am: 21. Okt. 2011 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Hallo Namensvetter,
Zitat: Vermuteter Hintergrund: ...
ja vermuten kann man viel, aber solange aus der Vermutung keine Gewissheit geworden ist ergeben deine Fragen keinen Sinn. Da meine Glasßkugel gerade in der Werkstatt ist, muß du schon die in der test.xls (welch grausliger Name für eine produktive Datei) enthaltenen Makros zur Verfügung stellen. Dann könnte ich auch die Fragen beantworten. Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003 Win 10/64 Pro AutoCAD MAP 3D 2018 / 2023 BricsCAD 22
|
erstellt am: 24. Okt. 2011 16:26 <-- editieren / zitieren --> Unities abgeben:
So, hier eine Musterdatei. Drinnen sind zwei Mini-makros, die nur Hallo1 und hallo 2 schreiben. Dazu gibt es auch die Symbolleiste "hallo-test". Die Datei wurde auf "d:\" erstellt und die Makros wurden ohne Pfad den Symbolen zugewiesen. Testvorschlag: - Datei auf D:\ legen - Datei öffnen - Symbolleiste erscheint - Makros probieren (oder auch nicht ...) - schliessen - speichern oder auch nicht.. - Symbolleiste bleibt erhalten - Datei irgendwohin verschieben, dann wieder öffnen - Makros probieren --> Fehlermeldung erscheint: "Kann d:\... nicht öffnen" - Symbolleiste anschauen: Die Makroaufrufe wurden absolut (inkl. Pfade) - Datei schliessen - über "Anpassen" die Symbolleiste löschen - Datei öffnen, Symbolleiste erscheint - Makro probieren -> es klappt wieder. - Datei schliessen und woander hinschieben -> klappt wieder nicht Also scheint sich die Verknüpfung zum Makro in absolute Pfade umzuwandeln und in "Excel" (also nicht in der Datei) abzuspeichern. Grüsse
Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 24. Okt. 2011 18:08 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
du könntest die Symbolleiste auch beim Start immer erst erzeugen. Code: Private Sub Workbook_Open() Dim symb As CommandBar Dim AA As Object On Error Resume Next Set symb = Application.CommandBars.Add("TEST", Position:=msoBarTop, Temporary:=True) With symb .Left = 0 .Visible = True End With Set AA = Application.CommandBars("TEST").Controls.Add(Type:=msoControlButton) With AA .Style = msoButtonIcon .FaceId = 47 .TooltipText = "Hallo 1" .BeginGroup = True .OnAction = "hallo1" End With Set AA = Application.CommandBars("TEST").Controls.Add(Type:=msoControlButton) With AA .Style = msoButtonIcon .FaceId = 33 .TooltipText = "Hallo 2" .BeginGroup = True .OnAction = "hallo2" End With End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3701 Registriert: 15.10.2003
|
erstellt am: 24. Okt. 2011 19:44 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Thomas Harmening: du könntest die Symbolleiste auch beim Start immer erst erzeugen....
Das werde ich auf jeden Fall im Auge behalten; ebenso den Ansatz, die Makros über Buttons zu starten. Aber die Nachvollziehbarkeit bzw. der Hintergrund meines Problems würde mich dennoch interessieren. Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |