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

Makro dem Schaltflächenbild per VBA zuweisen

Makro dem Schaltflächenbild per VBA zuweisen
Karsten
Hallo,
läßt sich per VBA-Code in der Menüleiste einem selbst erstelltem Schaltflächenbild einen Makro zuweisen?
Ich weiß, dass es sich wie Quatsch anhört sowas zu machen, aber durch Abspeichern in eine andere Mappe und wieder öffnen usw. (es ist eigentlich noch komplizierter) werden die Makrozuweisungen nicht aktualisiert und er findet den Makro in der neuen Mappe deshalb nicht. Hab auch schon probiert die Excel10.xlb zu kopieren und danach wieder zu ersetzen, geht aber auch nicht.
Danke für eure Hilfe.
Gruß
Karsten
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 10:31:23
Rudi
Hallo,
der normale Weg ist, beim Start der Mappe per VBA eine eigene Symbolleiste mit entsprechenden Schaltflächen zu erstellen und beim Schleßen wieder zu löschen.
Gruß
Rudi
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 11:03:05
Karsten
Hallo Rudi,
da muss ich noch mal fragen:

entsprechenden Schaltflächen zu erstellen

in Anpassen - Symbolleisten usw. völlig neu erstellen? Oder die eingerichtete Symbolleiste mit Schaltflächen per VBA aktivieren?
Schließen wieder zu löschen
wirklich löschen oder nur verstecken?
Gruß
Karsten
Anzeige
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 11:33:58
Rudi
Hallo,
1. völlig neu erstellen
2. löschen
Mal als Beispiel
In DieseArbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
CreateMenu False
End Sub
Private Sub Workbook_Open()
CreateMenu True
End Sub
In ein Modul:
Sub CreateMenu(blnCreate As Boolean)
Dim oCBar As CommandBar
Const strCBName As String = "MeineMakros"
On Error Resume Next
Application.CommandBars(strCBName).Delete
On Error GoTo 0
If blnCreate Then
Set oCBar = Application.CommandBars.Add(strCBName, msoBarTop, False, True)
CreateButton oCBar, "Makro1"
CreateButton oCBar, "Makro2", "Button2", True
'und so weiter
oCBar.Visible = True
End If
End Sub
Sub CreateButton(oCBar As CommandBar, strOnAction As String, Optional strCaption, Optional  _
blnGroup As Boolean = False)
Dim oBtn As CommandBarButton
If IsMissing(strCaption) Then strCaption = strOnAction
Set oBtn = oCBar.Controls.Add(msoControlButton, 1, , , True)
With oBtn
.Caption = strCaption
.OnAction = strOnAction
.Style = msoButtonCaption
.BeginGroup = blnGroup
End With
End Sub

Gruß
Rudi
Anzeige
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 12:23:42
Karsten
Hallo Rudi,
hab 'ne Weile gebraucht, aber es funktioniert wirklich gut für meine Sache, danke.
Habe dennoch 2 Fragen:
1.
Wo steht im Code, wo die Symbolleiste platziert wird?
Ich nehme an, irgendwo da:
Set oCBar = Application.CommandBars.Add(strCBName, msoBarTop, False, True)
Was muß wo stehn, dass Excel sich eine andere Position "merkt"?
2.
Und, wie funktioniert das mit selbstkreierten Schaltflächen?
Gruß
Karsten
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 12:43:37
Rudi
Hallo,
ist es so schwer, in die Hilfe zu schauen?
1. msoBarTop Alternativ left, right, bottom, floating
2. Bilder auf einem (versteckten) Blatt ablegen, kopieren und per PasteFace der SchFl zuordnen.
Gruß
Rudi
Anzeige
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 12:59:01
Karsten
Hallo Rudi,
sorry, dass ich nerve.
mit der Platzierung meine ich noch etwas anderes. z.B. in: "Worksheet Menu Bar" ganz rechts.
Die Hilfe ist nicht immer die Hilfe, besonders, wenn man nicht weiß, nach was man suchen soll.
Gruß
Karsten
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 13:18:55
Rudi
Hallo,
da kannst du aber keine Commandbar einbauen, sondern nur Controls.
Sub ttx()
Dim oPop As CommandBarPopup, oBtn As CommandBarControl
Const strPop As String = "MeineMakros"
On Error Resume Next
Application.CommandBars("worksheet Menu Bar").Controls(strPop).Delete
On Error GoTo 0
Set oPop = Application.CommandBars("worksheet Menu Bar").Controls.Add(msoControlPopup)
With oPop
.Caption = strPop
.BeginGroup = True
End With
Set oBtn = oPop.Controls.Add(msoControlButton)
With oBtn
.Style = msoButtonIconAndCaption
.Caption = "Button1"
.OnAction = "Test_001"
End With
Set oBtn = oPop.Controls.Add(msoControlButton)
With oBtn
.Style = msoButtonIconAndCaption
.Caption = "Button2"
.OnAction = "Test_002"
End With
End Sub

Gruß
Rudi
Anzeige
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 13:53:21
Karsten
Hallo Rudi,
mit:
Private Sub Workbook_Open()
MeineMakros
End Sub
bekomme ich meine Schaltfläche nun oben hin.
Wie bekomme ich sie wieder weg für die nächste Mappe.
Mit so eine Art Makro geht es zwar im Moment, nur ich glaube das geht noch anders.
Es muss ja nicht immer das 15te Kästchen bleiben.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Worksheet Menu Bar").Controls(15).Delete
End Sub

Gruß
Karsten
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 14:46:14
Rudi
Hallo,
dann gib doch den Namen an.
Application.CommandBars("Worksheet Menu Bar").Controls("MeineMakros").Delete
Gruß
Rudi
Anzeige
AW: Makro dem Schaltflächenbild per VBA zuweisen
25.11.2010 21:07:11
Karsten
Hallo Rudi,
aha. Danke.
Damit komme ich noch nicht klar:
2. Bilder auf einem (versteckten) Blatt ablegen, kopieren und per PasteFace der SchFl zuordnen.
Mit:
ActiveSheet.Shapes("Picture 2").Select
Selection.Copy
kopiere ich.
Wie geht es mit PasteFace weiter?
Gruß
Karsten
steht in der Hilfe owT
01.12.2010 12:58:04
Rudi

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige