Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
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
Makro über Menüpunkt
Josef
Servus zusammen,
habe in meine Menüleiste einen weiteren Punkt eingefügt, mit welchem ein Makro gestartet wird.
Nur leider habe ich diesen Menüpunkt jetzt in jedem Excel.
Was muß ich wo einstellen, damit ich nur in der gewünschten Datei diesen Menüpunkt habe.
Vielen Dank im Voraus.
Gruß
Josef
AW: Makro über Menüpunkt
19.08.2010 15:29:00
Rudi
Hallo,
du musst den Punkt in einer eigenen Symbolleiste unterbringen und diese über Anpassen-Anfügen an deine Mappe hängen.
Gruß
Rudi
AW: Makro über Menüpunkt
19.08.2010 16:00:39
JogyB
Hi Rudi,
aber dann bleibt die Symbolleiste doch auch allgemein im Excel erhalten. Zumindest tut es das hier bei mit, so übertrage ich meine nun doch schon etwas längere Symbolleiste immer auf andere Rechner.
Die Lösung hier wäre doch vielmehr, den Eintrag durch die Datei temporär erstellen zu lassen... aber da müsste ich auch erst mal wieder schauen, wie das ging... ist lange her, dass ich das mal gebraucht habe.
Gruß, jogy
AW: Makro über Menüpunkt
19.08.2010 16:14:34
Rudi
Hallo,
aber dann bleibt die Symbolleiste doch auch allgemein im Excel erhalten

nur teilweise. Beim nächsten Start ist sie erst mal weg bis die Datei wieder geöffnet wird.
Abhilfe:
in DieseArbeitsmappe der Datei:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("TestMenü").Delete
End Sub
Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("TestMenü").Visible = False
End Sub
Private Sub Workbook_Activate()
Application.CommandBars("TestMenü").Visible = True
End Sub
den Eintrag durch die Datei temporär erstellen zu lassen

das ist genau der richtige Weg. Mache ich immer so.
Gruß
Rudi
Anzeige
AW: Makro über Menüpunkt
19.08.2010 16:28:38
Josef
Servus Rudi,
danke für deine Hilfe, werd es morgen früh gleich ausprobieren.
Gruß
Josef
AW: Makro über Menüpunkt
19.08.2010 16:46:19
Fatih
Hallo Rudi,
bei mir funktioniert das eigentlich sehr gut. Was ich bemerkt habe, wenn ich die Mappe schliesse und erneut öffne ist meine Symbolleiste mitten im Arbeitsblatt.
Kann man das nicht vorbestimmen das es sich automatisch oben irgendwo andockt?
lg
fatih
Position:=msoBarTop,
19.08.2010 17:02:08
NoNet
Hallo fatih,
versuche mal das hier :
Set cbBar = Application.CommandBars.Add(strLeistenname, Position:=msoBarTop, Temporary:=True)
Gruß, NoNet
AW: Position:=msoBarTop,
20.08.2010 09:49:59
Fatih
Guten Morgen NoNet,
unter welche Prozedur soll ich den o.a Code einfügen?
Ich habs mal so probiert.(Diese Arbeitsmappe)

Private Sub Workbook_Activate()
Application.CommandBars("Tracking").Visible = True
Set cbBar = Application.CommandBars.Add("Tracking", Position:=msoBarTop, Temporary:=True)
End Sub
klappt aber nicht
lg.
fatih
Anzeige
Einfach umgekehrt : 1.Schritt VOR dem 2.Schritt !!
21.08.2010 00:25:55
NoNet
Hallo fatih,
mit Set cbBar = Application.CommandBars.Add("Tracking",..) wird die Symbolleiste doch erst erstellt, wie kann sie dann bereits VORHER sichtbar (visible) gemacht werden ? - Das kann ja nicht funktionieren !!
Probiere es anders herum und halte Deine Augen fest, damit diese nicht nach vorne herausfliegen ;-) :
Set cbBar = Application.CommandBars.Add("Tracking", Position:=msoBarTop, Temporary:=True)
Application.CommandBars("Tracking").Visible = True

Gruß, NoNet
AW: Makro über Menüpunkt
19.08.2010 17:18:15
JogyB
Beim nächsten Start ist sie erst mal weg bis die Datei wieder geöffnet wird.
Ist bei mir nicht so. Gerade eben nochmal getestet. Sobald ich einmal die Datei mir der angehängten Symbolleiste geöffnet habe, ist sie bei jedem Start von Excel da... wobei das vielleicht damit zu tun haben könnte, dass die zugehörigen Makros nicht in der Datei sondern in einem AddIn liegen.
Gruß, Jogy
Anzeige
Eigene Symbolleiste temp. per VBA erstellen
19.08.2010 16:29:40
NoNet
Hallo Jogy,
hier ein Beispiel wie Du eine eigene temporäre Symbolleiste per VBA erstellen kannst (hier : nur 2 Buttons).
Der Code gehört in ein allgemeines Modul (also z.B. "Modul1") :
Public Const strLeistenname = "Eigene Menüleiste"     'Der Name der Menüleiste
Sub MenueleisteErstellen()
Dim cbBar As CommandBar, cnt As CommandBarButton
On Error Resume Next
MenueleisteLoeschen 'Menüleiste zuvor löschen - falls bereits vorhanden
'Menüleiste TEMPORÄR erstellen : Wird bei Excel Ende automatisch gelöscht
Set cbBar = Application.CommandBars.Add(strLeistenname, Temporary:=True)
'Button 1 in der Symbolleiste erstellen
Set cnt = cbBar.Controls.Add(msoControlButton)
With cnt
.OnAction = "Makro1" 'Bei Klick auf diesen Button soll "Makro1" gestartet werden
.Caption = "Beschriftung des Button 1" 'Kann auch weggelassen werden
.FaceId = 171 'Icon des Buttons - per FaceID Browser ermitteln
.Style = msoButtonIcon 'Nur Icon ohne Text anzeigen
.TooltipText = "Hier Quickinfo-Text für den Button 1 eingeben"
End With
'Button 2 in der Symbolleiste erstellen
Set cnt = cbBar.Controls.Add(msoControlButton)
With cnt
.OnAction = "Makro2" 'Bei Klick auf diesen Button soll "Makro2" gestartet werden
.Caption = "Beschriftung des Button 2" 'Kann auch weggelassen werden
.FaceId = 175 'Icon des Buttons - per FaceID Browser ermitteln
.Style = msoButtonIcon 'Nur Icon ohne Text anzeigen
.TooltipText = "Hier Quickinfo-Text für den Button 2 eingeben"
End With
cbBar.Visible = True 'Symbolleiste anzeigen
End Sub
Sub MenueleisteLoeschen()
On Error Resume Next
Application.CommandBars(strLeistenname).Delete 'Symbolleiste löschen
End Sub
Wenn Du nun den Aufruf des Makros MenueleisteErstellen in das Private Sub Workbook_Open() aufnimmst, wird die Symbolleiste beim Öffnen der Mappe automatisch erstellt.
Ergänzend kannst Du in Private Sub Workbook_BeforeClose(..) das Makro MenueleisteLoeschen starten, so dass diese Leiste beim Schließen der Mappe automatisch gelöscht wird.
Ansonsten wird die Symbolleiste beim Schließen von Excel automatisch "gelöscht", da sie ja nur temporär für diese Instanz erstellt wurde !
Gruß, NoNet
Anzeige
AW: Eigene Symbolleiste temp. per VBA erstellen
19.08.2010 17:06:35
ing.grohn
Hallo Nonet,
habe Dein Bespiel zum probieren übernommen, sehe aber nichts.
Excel 2010: ist dass das Problem?
Mit freundlichen Grüßen
Albrecht
AW: Eigene Symbolleiste temp. per VBA erstellen
19.08.2010 17:26:20
JogyB
Hallo Albrecht,
ja, da ist Excel 2010 das Problem, da es die klassische Symbolleiste nicht mehr gibt. Man kann zwar eine alte Symbolleiste mit der von Rudi beschriebenen Methode noch laden, aber nicht mehr bearbeiten (zumindest habe ich keinen Weg gefunden, habe zugegebenermaßen aber auch nur mal ne knappe Stunde herumgesucht und gegoogelt).
Wenn ich nicht ganz falsch informiert bin, dann läuft das jetzt über RibbonX, womit ich mich daher wohl zwangsläufig mal beschäftigen muss.
@NoNet: Ich weiß schon grundsätzlich wie es geht, den Code habe ich auch noch irgendwo hier rumliegen, nur schon seit Jahre nicht mehr gebraucht. War mehr an den TO (also Josef) gerichtet, dass es diese Möglichkeit gibt. Trotzdem Danke.
Gruß, Jogy
Anzeige
Excel 2010 : Eigene Symbole im Menüpunkt 'Add-Ins'
19.08.2010 17:37:03
NoNet
Hallo Albrecht,
In Excel 2007 und 2010 gibt es bekanntlich keine Symbolleisten mehr sondern nur noch Registerkarten (Ribbons), Gruppen und Symbole (Controls).
Die Symbolleisten älterer Excelversionen (bis Excel 2003), wie ich sie auch in oben stehendem Code erstellt habe, werden nicht mehr als einzelne Symbolleisten angezeigt, sondern im Menüpunkt "Add-Ins" zusammengefasst. Daher findest Du die erzeugten Symbole in Excel 2010 auch nur noch dort :
Gruß, NoNet
AW: Excel 2010 : Eigene Symbole im Menüpunkt 'Add-Ins'
19.08.2010 17:41:06
ing.grohn
Hallo Nonet,
alles klar, muss man sich näher anschauen (Texte/Bezeichnungen sind weg).
Vielen Dank
Mit freundlichen Grüßen
Albrecht
Anzeige
AW: Eigene Symbolleiste temp. per VBA erstellen
20.08.2010 09:03:56
Josef
Hallo NoNet,
hab deinen Code in Modul 1 eingefügt, hat allerdings nicht funktioniert.
Dann hab ich ihn in "DieseArbeitsmappe" eingefügt, da gehts.
hab allerdings noch ein paar kleinere Probleme:
- die Zeile

Public Const strLeistenname = "Eigene Menüleiste"
funktioniert nicht, da meckert er wegen "Const" somit bekomm ich die Menüleisten nicht benannt
- der Button in der Menüleiste wird leider nur mit einem Icon versehen, jedoch nicht mit einer Beschriftung
Gruß
Josef
AW: Eigene Symbolleiste temp. per VBA erstellen
20.08.2010 10:23:38
Josef
Hallo NoNet,
das mit dem Menüleisten-Namen hab ich hin bekommen.
jedoch kann ich dem Icon keinen Text zuweisen bzw. so wie es in deinem Code steht funzt es nicht.
ich kann mit der rechten Maus-Taste den Namen anzeigen lassen, jedoch beim nächsten öffnen ist wieder nur das Icon zu sehen.
Bitte noch mal um Hilfe.
Gruß
Josef
Anzeige
AW: Eigene Symbolleiste temp. per VBA erstellen
20.08.2010 11:15:23
Rudi
Hallo,
der Button hat den Style msoButtonIcon. Da geht keine Beschriftung.
Ändere in .Style = msoButtonIconAndCaption
Gruß
Rudi
AW: yipii - ihr seid die Besten
20.08.2010 11:26:33
Josef
Dank dir Rudi.
manchmal ist das Brett vorm Kopf so breit, dass man nicht mehr drunter durchschauen kann.
Jetzt kann ich beruhigt ins Wochenende.
wünsch dir und allen anderen ein erholsames WE.
Gruß
Josef

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige