Startbutton in der Schnellstartleiste
- theos
- Beiträge: 59
- Registriert: 15. Sep 2022, 21:48
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 31 Mal
- Kontaktdaten:
Startbutton in der Schnellstartleiste
Hallo.
Muss auch mal eine Frage stellen.
Verwende gerne in der Schnellstartleiste einen Knopf, den ich in bestimmten Mappen mit einem Makro belegt hab, um den damit zu starten.
So weit so einfach.
Jetzt möchte ich das Einfügen des Knopfes und zuordnen des Makros mit einem Makro machen.
Weiß jemand wie ich das lösen kann?
Danke.
Muss auch mal eine Frage stellen.
Verwende gerne in der Schnellstartleiste einen Knopf, den ich in bestimmten Mappen mit einem Makro belegt hab, um den damit zu starten.
So weit so einfach.
Jetzt möchte ich das Einfügen des Knopfes und zuordnen des Makros mit einem Makro machen.
Weiß jemand wie ich das lösen kann?
Danke.
-
- Beiträge: 35
- Registriert: 29. Aug 2022, 20:22
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 14 Mal
Re: Startbutton in der Schnellstartleiste
Hallo,
wenn ich es richtig verstanden habe, suchst du nach einer Prozedur, welche im Ribbon einen Button erzeugt und diesem Button eine Prozedur zuweist.
Meines Wissens kann VBA nicht ins Ribbon schreiben, sondern nur via Public oder falls stabiler per Property Anweisung diverse Variablen, welche für XML reserviert sind zurückgeben.
Was in alten Office Versionen vor Einführung XML ging wird dann nur noch, wenn ich mich recht erinnere, unter dem Tab „AddIn“ angezeigt und ist da auch funktional.
Das was du möchtest sollte nur noch von außen via XML Editor o.ä. (geht auch für den Notfall gezippt händisch) möglich sein. Da kann man dann relativ viel damit erschlagen. Aber selbst da gibt es diverse Einschränkungen in der Gestaltung.
Gruß Uwe
wenn ich es richtig verstanden habe, suchst du nach einer Prozedur, welche im Ribbon einen Button erzeugt und diesem Button eine Prozedur zuweist.
Meines Wissens kann VBA nicht ins Ribbon schreiben, sondern nur via Public oder falls stabiler per Property Anweisung diverse Variablen, welche für XML reserviert sind zurückgeben.
Was in alten Office Versionen vor Einführung XML ging wird dann nur noch, wenn ich mich recht erinnere, unter dem Tab „AddIn“ angezeigt und ist da auch funktional.
Das was du möchtest sollte nur noch von außen via XML Editor o.ä. (geht auch für den Notfall gezippt händisch) möglich sein. Da kann man dann relativ viel damit erschlagen. Aber selbst da gibt es diverse Einschränkungen in der Gestaltung.
Gruß Uwe
- d'r Bastler
- Beiträge: 884
- Registriert: 29. Aug 2022, 13:20
- Hat sich bedankt: 241 Mal
- Danksagung erhalten: 127 Mal
Re: Startbutton in der Schnellstartleiste
Moin theos,
nach einiger neugieriger Recherche und ein paar Tests komme ich zum gleichen Ergebnis wie Paul und habe deshalb über mögliche alternativen nachgedacht: Die Zuweisung von F-Tasten für die Makros, die Du in der personal.xlsb definierst.
Wäre das von Interesse?
Grüße
nach einiger neugieriger Recherche und ein paar Tests komme ich zum gleichen Ergebnis wie Paul und habe deshalb über mögliche alternativen nachgedacht: Die Zuweisung von F-Tasten für die Makros, die Du in der personal.xlsb definierst.
Wäre das von Interesse?
Grüße
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
-
- Beiträge: 67
- Registriert: 30. Mai 2024, 19:42
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 57 Mal
- Kontaktdaten:
Re: Startbutton in der Schnellstartleiste
Hallo Theos,
grundsätzlich stimme ich den Vorrednern zu. Microsoft hat bewusst Veränderungen an den Symbolleisten per Makro ausgeschlossen, indem es die Ribbons eingeführt hat. Früher gab es zu viele Veränderungen durch manche Nutzer (z.B. Office in Dialekten mit Menüleisten in Sächsisch, Fränkisch usw.) Das hat Microsoft offenbar nicht gefallen. Daher die Ribbons. Um nun einem Ribbon ein Symbol für den Makrostart zuzuweisen, kann man entweder manuell vorgehen über Menüleiste anpassen oder man nutzt RibbonX. Mir wurde seinerzeit z.B. die wirklich sehr gut gemachte Seite von Rene Holtz empfohlen, wo man die wichtigsten Sachen dazu nachlesen kann.
Es gibt aber auch einen Weg deinem Wunsch zu entsprechen. Angenommen du hast in einem allgemeinen Modul (z.B. Modul1) zwei Makros liegen...
... dann kannst du im Modul "DieseArbeitsmappe" folgenden Code hinterlegen.
Der Code prüft ob bereits eine benutzerdefinierte Symbolleiste existiert und wenn nicht legt er diese an. Dann werden dort zwei Symbole erstellt, ihnen ein Bildchen (FaceID) und zu guter Letzt das Makro (OnAction) zugewiesen. Eine gute Übersicht welche Bildchen es so gibt, findest du hier.
Die Symbolleiste wird zunächst im Ribbon AddIns erstellt und dort angezeigt. Wenn du aber mit der rechten Maustaste draufgehst, kannst du diese der Schnellstartleiste hinzufügen. Dort erscheint sie als zusätzliches Symbol. Wenn du da drauf klickst öffnet sich eine Liste mit all deinen Benutzersymbolen.
Bei weiteren Fragen einfach melden.
Gruß Mr. K.
grundsätzlich stimme ich den Vorrednern zu. Microsoft hat bewusst Veränderungen an den Symbolleisten per Makro ausgeschlossen, indem es die Ribbons eingeführt hat. Früher gab es zu viele Veränderungen durch manche Nutzer (z.B. Office in Dialekten mit Menüleisten in Sächsisch, Fränkisch usw.) Das hat Microsoft offenbar nicht gefallen. Daher die Ribbons. Um nun einem Ribbon ein Symbol für den Makrostart zuzuweisen, kann man entweder manuell vorgehen über Menüleiste anpassen oder man nutzt RibbonX. Mir wurde seinerzeit z.B. die wirklich sehr gut gemachte Seite von Rene Holtz empfohlen, wo man die wichtigsten Sachen dazu nachlesen kann.
Es gibt aber auch einen Weg deinem Wunsch zu entsprechen. Angenommen du hast in einem allgemeinen Modul (z.B. Modul1) zwei Makros liegen...
Code: Alles auswählen
Sub HalloWelt()
MsgBox "HalloWelt"
End Sub
Sub HalloWelt2()
MsgBox "HalloWelt2"
End Sub
Code: Alles auswählen
Private Sub Workbook_Open()
Dim cb As CommandBar
If cbExists("myCB") Then Set cb = Application.CommandBars("myCB") Else Set cb = Application.CommandBars.Add("myCB", msoBarTop, Temporary:=True)
With cb
.Visible = True
With .Controls.Add(msoControlButton)
.Visible = True
.FaceId = 38
.OnAction = "HalloWelt"
End With
With .Controls.Add(msoControlButton)
.Visible = True
.FaceId = 40
.OnAction = "HalloWelt2"
End With
End With
End Sub
Private Function cbExists(n As String) As Boolean
On Error Resume Next
cbExists = IsObject(CommandBars(cb))
End Function
Die Symbolleiste wird zunächst im Ribbon AddIns erstellt und dort angezeigt. Wenn du aber mit der rechten Maustaste draufgehst, kannst du diese der Schnellstartleiste hinzufügen. Dort erscheint sie als zusätzliches Symbol. Wenn du da drauf klickst öffnet sich eine Liste mit all deinen Benutzersymbolen.
Bei weiteren Fragen einfach melden.
Gruß Mr. K.
-
- Beiträge: 67
- Registriert: 30. Mai 2024, 19:42
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 57 Mal
- Kontaktdaten:
Re: Startbutton in der Schnellstartleiste
Grade nochmal draufgeschaut. Die Funktion zur Prüfung ob existent muss natürlich so lauten.
Gruß Mr. K.
Code: Alles auswählen
Private Function cbExists(n As String) As Boolean
On Error Resume Next
cbExists = IsObject(CommandBars(n))
End Function
- Folgende Benutzer bedankten sich beim Autor xlKing für den Beitrag:
- d'r Bastler
-
- Beiträge: 62
- Registriert: 20. Okt 2024, 14:15
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 36 Mal
- Kontaktdaten:
Re: Startbutton in der Schnellstartleiste
Hallo Theos,
mit VBA direkt geht das nicht, aber du kannst natürlich die entsprechende XML-Datei vor dem Start per Programm überschreiben, was aber i.A. keine gute Idee ist.
Alternativ kannst du aber die Makros in ein Addin packen, dieses mit einer angepassten QAT speichern und dann in deinen Workbooks ggf. aktivieren.
https://learn.microsoft.com/en-us/previ ... dfrom=MSDN
und hier etwas über QAT, zwar für Word, dürfte aber im Prinzip auch für XL gelten:
https://addbalance.com/word/ribbonmodification.htm
Gruß Knobbi38
mit VBA direkt geht das nicht, aber du kannst natürlich die entsprechende XML-Datei vor dem Start per Programm überschreiben, was aber i.A. keine gute Idee ist.
Alternativ kannst du aber die Makros in ein Addin packen, dieses mit einer angepassten QAT speichern und dann in deinen Workbooks ggf. aktivieren.
https://learn.microsoft.com/en-us/previ ... dfrom=MSDN
und hier etwas über QAT, zwar für Word, dürfte aber im Prinzip auch für XL gelten:
https://addbalance.com/word/ribbonmodification.htm
Gruß Knobbi38
- Folgende Benutzer bedankten sich beim Autor knobbi38 für den Beitrag:
- d'r Bastler
- theos
- Beiträge: 59
- Registriert: 15. Sep 2022, 21:48
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 31 Mal
- Kontaktdaten:
Re: Startbutton in der Schnellstartleiste
Hallo zusammen.
Dachte ich mir schon fast, dass das nicht so einfach wird. Werde mir das mal der Reihe nach anschauen, danke für die Ideen!
Dachte ich mir schon fast, dass das nicht so einfach wird. Werde mir das mal der Reihe nach anschauen, danke für die Ideen!
Wer ist online?
Mitglieder in diesem Forum: Ahrefs [Bot] und 2 Gäste