online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon woher2010 vom 20.05.2022, 17:14 Options

Makro Menue einfügen

Hallo,
ich habe aus dem Internet ein Add in. Teilweise tut es das was ich möchte, teilweise werde ich es in nächster Zeit (mit eurer Hilfe) weiter entwickeln.
Dazu meine 1. Frage:
Das folgende steht unter DieseArbeitsmappe:

Option Explicit

Private Sub workbook_open()
SNeuesMenueEinfügen
End Sub
---------------------------------------
Private Sub Workbook_beforeclose(cancel As Boolean)
SMenüLöschen
End Sub
------------------------------------
Das folgende steht im Modul "Menue"

Option Explicit

Sub SNeuesMenueEinfügen()
Dim i As Integer
Dim i_Hilfe As Integer
Dim MenüNeu As CommandBarControl
Dim MB As CommandBarControl

i = Application.CommandBars(1).Controls.Count
i_Hilfe = Application.CommandBars(1).Controls(i).Index

Set MenüNeu = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, Before:=i_Hilfe, temporary:=True)

MenüNeu.Caption = "Makros"
'-------------------------------------
Set MB = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With MB
.Caption = "Daten in Zahlen umwandlen"
.Style = msoButtonCaption
.OnAction = "WandelinEXCEL"
Set MB = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With MB
.Caption = "Blattschutz_ein"
.Style = msoButtonCaption
.OnAction = "Blattschutz_ein"
Set MB = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With MB
.Caption = "Blattschutz_aus"
.Style = msoButtonCaption
.OnAction = "Blattschutz_aus"
End With
End With
End With
End Sub

Sub SMenüLöschen()
On Error Resume Next
With Application.CommandBars(1)
.Controls("Makros").Delete
End With
End Sub

Sind die beiden Mini-Makro unter DieseArbeitsmappe überflüssig (wenn man die beiden anderen entsprechend ergänzt)?
3 mal steht in dem einen Makro"i_Hilfe.....". Was will der Autor damit sagen??
Ist der Programmcode ansonsten in Ordnung oder hat jemand Tipps was ich verbessern / ergänzen kann / sollte?
Dieses Menue soll nach und nach weitere Makroaufrufe aufnehmen.
vielen Dank im voraus
mfg
Wolfgang H.


Antwort schreiben

Antwort 1 von Hajo_Zi vom 20.05.2022, 17:23 Options

HaloWolfgang,

die Makros unter dieseArbeitsmapppe veranlasen das die Makro beim Öffnen und beim schliessen ausgeführt werden. Ich vermute die sind nicht überflüssig.

Gruß Hajo

Antwort 2 von woher2010 vom 20.05.2022, 17:32 Options

Hallo Hajo,
das ist mir schon klar.

kann ich den Code der im Makro:"SNeuesMenueEinfügen()" steht in das Makro "Private Sub workbook_open()" reinkopieren? Und dann macht ein Makro das was vorher 2 gemacht haben?

mfg
Wolfgang H.

Antwort 3 von Hajo_Zi vom 20.05.2022, 17:40 Options

Hallo Wolfgang,

Theoretisch ja, ich sehe aber nicht ob das Makro von einem anderem aufgerufen wird.

Gruß Hajo

Antwort 4 von woher2010 vom 20.05.2022, 17:54 Options

Hallo Hajo,
wie oben gesagt, dies sind Teile eines Add in. Jeder der das Add in braucht, bindet es in sein Excel ein.
mfg
Wolfgang H.

Antwort 5 von fedjo vom 20.05.2022, 18:23 Options

Hallo Wolfgang,
ein Vorschlag für dein Eigenes Menue, ist bestimmt einfach zu verändern oder erweitern.

Gruß
fedjo

In ein Modul einfügen:

Option Explicit
Sub Eigenes_Menu()
' mit Unter-Untermenü
On Error Resume Next
Application.CommandBars.ActiveMenuBar _
.Controls("Wolfgang").Delete
With Application.CommandBars.ActiveMenuBar.Controls.Add(Type:=msoControlPopup)
.BeginGroup = True 'Trennlinie
On Error GoTo 0
.Caption = "Wolfgang"
' 1 Menüpunkt
With .Controls.Add
.FaceId = 3895
.Caption = "&M1" 'Menü Button Name
.OnAction = "Makro1" 'Dein Makro
End With
' 2 Menüpunkt
With .Controls.Add
.FaceId = 718
.Caption = "&M2" 'Menü Button Name
.OnAction = "Makro2" 'Dein Makro
'3 Menüpunkt
End With
With .Controls.Add
.FaceId = 2105
.Caption = "&M3" 'Menü Button Name
.OnAction = "Makro3" 'Dein Makro
End With
End With
End Sub

Sub Eigenes_Menu_loeschen()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("Wolfgang").Delete
End Sub

In DieseArbeitsmappe einfügen:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Eigenes_Menu_loeschen
End Sub
Private Sub Workbook_Open()
Eigenes_Menu
End Sub

Antwort 6 von woher2010 vom 21.05.2022, 08:59 Options

Hallo und Danke,
schönes Wochenende,
Wolfgang H.

Antwort 7 von woher vom 24.05.2022, 17:41 Options

Hallo,
Danke noch mal, das Makro funktioniert. Aber verstehen würde ich es auch gerne.
Warum steht diese Anweisung ziemlich am Anfang des Makros:

Application.CommandBars.ActiveMenuBar _
.Controls("Wolfgang").Delete

Wenn ich sie lösche habe ich beim 2ten öffnen der Datei das Menue 2mal.
Aber eigentlich wird es doch beim schließen der Datei wieder gelöscht??

FaceId: ist das die Kennziffer für die Symbole vor dem Makronamen?

mfg
woher2010

Antwort 8 von Hajo_Zi vom 24.05.2022, 19:28 Options

Hallo Wolfgang,

das löschen ist nur zur Sicherheit, damit es nicht auf einen Laufzeitfehler läuft, falls schon vorhanden. Das es eine Sicherheitsmaßnahme ist siehst Du auch daran das davor On Error Resume Next steht. Das mit der FaceId hast Du korrekt erkannt.
Das Menü wird niemals 2x erstellt würde ich mal so vom lesen vermuten.

Gruß Hajo

Antwort 9 von woher2010 vom 24.05.2022, 20:08 Options

Hallo Hajo,
du hast recht. Ich weis nicht was ich vorhin gemacht habe. Da hatte ich, wie gesagt die beiden Zeilen zum testen gelöscht und beim nächsten Start der Datei das Menue doppelt, diesmal nicht.
Kannst du mir sagen was die Anweisung
dim i_Hilfe as integer
und die anderen Anweisungen die I_Hilfe enthalten bedeuten?
Hatte da jemand mal vor eine Hilfe-(Datei) zu erstellen, es dann aber
bleiben lassen ohne das Makro zu korrigieren?
Lässt sich grundsätzlich eine (z.B. Editor-) Datei als Hilfedatei dem AddIn hinzufügen?
mfg
Wolfgang H.

Antwort 10 von Hajo_Zi vom 24.05.2022, 20:15 Options

Hallo Wolfgang,

das it ein Überbleibsel aus dem ersten Code, Die Variable wurde benutzt für Anzahl der Einträge
i_Hilfe = Application.CommandBars(1).Controls(i).Index
zu ermitteln.
Das wurde aber im letzten Code verändert.
Eine Hilfe zu einer Funktion usw. ist ein kompliziertes Thema, da stehen schon einige Ansätze in den Foren. Ich habe mich damit noch nicht befast.

Gruß Hajo

Antwort 11 von woher2010 vom 24.05.2022, 20:20 Options

Hallo Hajo,
danke und schönen Abend noch.
mfg
Wolfgang

Ähnliche Themen

Makro Datumsbezogen Werte einfügen
Disp8  19.11.2008 - 24 Hits - 14 Antworten

Per Makro Formel einfügen in Tabellenblätter?
Tutto_Retro  09.01.2009 - 137 Hits - 1 Antwort

Datenreihen per Makro in Diagramm einfügen?
Heiko1985  24.07.2009 - 166 Hits - 3 Antworten

Zellen einfügen per 4.0 Makro
Kein_excel_profi  25.07.2009 - 237 Hits - 3 Antworten

Hyperlink per Makro einfügen
GerdB  30.03.2010 - 264 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026