Menü´s erstellen

Bild

Betrifft: Menü´s erstellen von: Ali
Geschrieben am: 05.02.2005 22:36:34

Hallo Forum,
mit folgendem Auszug aus meinem Code habe ich mir eine Menüeleiste mit Untermenü`s
erstellt. Aktiviert wird sie über eine Befehlsschaltfläche.


Sub MenüErstellen()
Dim AktiveMenüLeiste As Object
Dim MeinMenü As Object, Befehl As Object, MB As Object
On Error Resume Next    
Application.CommandBars("MeinMenü").Delete
CommandBars.ActiveMenuBar.Controls("Mein Menü").Delete
Set MB = CommandBars.Add(Name:="MeinMenü", MenuBar:=True)
CommandBars("MeinMenü").Visible = True
Set AktiveMenüLeiste = CommandBars.ActiveMenuBar
Set MeinMenü = _
AktiveMenüLeiste.Controls.Add(Type:=msoControlPopup, Temporary:=True)
MeinMenü.Caption = "&ErstVersuch"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=1)
With Befehl
.Caption = "&Test"
.OnAction = "Start_Test"
End With
End Sub


Nun würde ich aber gerne noch drei weitere Menü´s mit Untermenü´s generieren. Ab hier
setzt es dann bei mir aus. wer kann mir weiterhelfen, diese in den bisherigen Code
einzubinden?
Danke schon jetzt für eure Unterstützung
Gruß
Ali
Bild


Betrifft: AW: Menü´s erstellen von: Ramses
Geschrieben am: 05.02.2005 22:45:02

Hallo

hättest du den Code bis zum Ende gelesen,... wüsstest du es :-)

http://www.excel-vba.de/2_1_2.htm

Gruss Rainer


Bild


Betrifft: AW: Menü´s erstellen von: Ali
Geschrieben am: 05.02.2005 22:56:02

Hallo Rainer,
möglicherweise habe ich mich falsch Ausgedrückt.
Aber, ich suche keine Möglichkeit weitere Untermenü´s
zu erstellen(das ist ja bestens beschrieben) sondern
weitere Menüpunkte mit Untermenü´s. Das ist für mich
als VBA-Neuling aus dem Code nicht erkennbar.
Hilfst du mir auf die Sprünge?
Gruß
Ali


Bild


Betrifft: AW: Menü´s erstellen von: Ramses
Geschrieben am: 06.02.2005 00:18:02

Hallo

Woher soll ich wissen, dass du VBA-Neuling bist.
Es war doch "ein Auszug aus Deinem Code" den zu da beschrieben hast und Im Level stand nix.

Anyway, nachdem du die Seite ja wahrsscheinlich angeklickt hast, hätte der zweitletzte Beitrag auf dieser Seite dein Problem gelöst :-)

Gruss Rainer


Bild


Betrifft: Entschuldigung von: Ali
Geschrieben am: 06.02.2005 00:53:00

Hallo Rainer,

---Woher soll ich wissen, dass du VBA-Neuling bist.
Im Level steht: Kaum Excel/VBA-Kenntnisse

---Es war doch "ein Auszug aus Deinem Code" den zu
---da beschrieben hast
Hmmm, Denke, das man euch Profis nichts vormachen kann.
Natürlich habe ich den Code nicht selbst geschrieben und
Entschuldige mich hiermit für die Bezeichnung "meinen Code"!

---Anyway, nachdem du die Seite ja wahrsscheinlich angeklickt
---hast, hätte der zweitletzte Beitrag auf dieser Seite dein
---Problem gelöst :-)
Möglicherweise, wenn mann mehr Ahnung davon hätte! Hab ich aber
nicht! Darum ja auch meine Frage hier im Forum.

Gruß
Ali


Bild


Betrifft: AW: Entschuldigung von: Hasan
Geschrieben am: 06.02.2005 08:17:04

Hallo Ali
Erweitert in zwei Richtungen


Sub MenüErstellen()
Dim AktiveMenüLeiste As Object
Dim MeinMenü As Object, Befehl As Object, MB As Object
On Error Resume Next
Application.CommandBars("MeinMenü").Delete
CommandBars.ActiveMenuBar.Controls("Mein Menü").Delete
Set MB = CommandBars.Add(Name:="MeinMenü", MenuBar:=True)
CommandBars("MeinMenü").Visible = True
Set AktiveMenüLeiste = CommandBars.ActiveMenuBar
Set MeinMenü = _
AktiveMenüLeiste.Controls.Add(Type:=msoControlPopup, Temporary:=True)
MeinMenü.Caption = "&Birinci"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=1)
With Befehl
.Caption = "&Birinci"
.OnAction = "Start_Test"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=2)
With Befehl
.Caption = "&Ikinci"
.OnAction = "Start_Test2"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=3)
With Befehl
.Caption = "&Ücüncü"
.OnAction = "Start_Test3"
Set MeinMenü = _
AktiveMenüLeiste.Controls.Add(Type:=msoControlPopup, Temporary:=True)
MeinMenü.Caption = "&Ikinci"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=4)
With Befehl
.Caption = "&Test"
.OnAction = "Start_Test"
Set MeinMenü = _
AktiveMenüLeiste.Controls.Add(Type:=msoControlPopup, Temporary:=True)
MeinMenü.Caption = "&Ücüncü"
Set Befehl = MeinMenü.Controls.Add(Type:=msoControlButton, ID:=2)
With Befehl
.Caption = "&Test"
.OnAction = "Start_Test"
End With
End With
End With
End With
End With
End Sub


Gruß
Hasan


Bild


Betrifft: Gefährlich... von: Ramses
Geschrieben am: 06.02.2005 10:04:00

Hallo

da müsstest du ihm schon auch noch den Code geben, damit er seine zerschossene Menübar wieder herstellen kann.
Anonsten ist an ein normales Arbeiten nach der Ausführung deines Codes nicht mehr möglich.

Set MB = CommandBars.Add(Name:="MeinMenü", MenuBar:=True)

Mit dieser Anweisung blendest du die aktive Menüleiste(Datei-Bearbeiten-Ansicht usw.) aus und stellst stattdessen deine rudimentäre Menubar dar.
ALLE Befehle und Menüs dieser Menüleiste stehen nicht mehr zur Verfügung !!

Ist das gewollt ?
Wenn ja, solltest du ihn zumindest darauf hinweisen.

Gruss Rainer

Gruss Rainer


Bild


Betrifft: AW: Gefährlich... von: Hasan
Geschrieben am: 06.02.2005 10:37:37

Hallo Rainer

Danke für den hinweis
Du hast recht da wird das normale menüleiste ausgeblendet aber komischer weise bei neustart des Excells sind die alten menüleisten wieder da. Ich habe dazu keine erklärung gefunden.

gruß
Hasan


Bild


Betrifft: AW: Gefährlich... von: Ramses
Geschrieben am: 06.02.2005 11:27:38

Hallo

verwende diese Anweisung

Set MB = Application.CommandBars.ActiveMenuBar.Controls.Add _
(Type:=msoControlPopup)
With MB
.Caption = "&Birinci"
'usw.
End With

Damit kannst du deinen Code weiter aufbauen, OHNE die MenuBar auszublenden

Gruss Rainer


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Menüs erstellen"