online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon woher vom 28.09.2022, 18:50 Options

Eigenes Menue mit Haken für Ein/Aus

Hallo,
in einem AddIn, im eigenen Menue ich habe bisher das folgende:

With .Controls.Add
.Caption = "Blattschutz aus"
.OnAction = "Blattschutz_aus"
End With

With .Controls.Add
.FaceId = 794
.Caption = "Blattschutz ein"
.OnAction = "Blattschutz_ein"
End With

Kann man daraus auch einen einzigen Eintrag machen:
_ Blattschutz ein/aus
mit einem Quadrat vor dem Text, um da so ein Häkchen zu setzen wie z.B. im Menue Ansicht, wo damit Symbolleisten ein/ausgeblendet werden?
mfg
Wolfgang


Antwort schreiben

Antwort 1 von woher vom 28.09.2022, 19:29 Options

Hallo,

"Kontrollkästchen" heißt das Ding was ich suche und einbinden will.

Wolfgang

Antwort 2 von Hajo_Zi vom 28.09.2022, 19:30 Options

Hallo Wolfgang,

ich habe so was mal realisiert im Kontextmenü, vielleicht ist das ein Ansatz?
Kontextmenü mit Haken Link zur Datei

Gruß Hajo

Antwort 3 von coros vom 28.09.2022, 20:06 Options

Hallo Wolfgang,

realisiere dass doch über eine Schaltfläche in der Menüleiste, die entsprechend den Zustand des Blattschutzes den Text und ggf. das Icon wechselt. nachfolgend mal ein Beispiel:

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

If ActiveSheet.ProtectContents = True Then
    With .Controls.Add
        .Caption = "Blattschutz aus"
        .OnAction = "Blattschutz_aus"
    End With
ElseIf .ProtectContents = False Then
    With NeueSymbolleiste.Controls.Add
        .FaceId = 794
        .Caption = "Blattschutz ein"
        .OnAction = "Blattschutz_ein"
    End With
End If
Hier wird geprüft, ob das Blatt geschützt ist oder nicht und der Schaltflächentext und die OnAction-Anweisung entsprechend geändert, quasi ein Wechselschalter.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von woher vom 28.09.2022, 21:23 Options

Hallo Hajo,
ich habe hier zwar schon diverse Fragen zu Makros gestellt, konnte Makros gelegentlich auf meine Bedürfnisse anpassen, verwende diverse Makros, aber wenn ich dann sowas wie dein oben verlinktes Makro betrachte, dann denke ich, ich habe mich im Wald verirrt .

Hallo Oliver,
zwischen durch, beim schreiben, habe ich mal kurz nachgesehen ob es neue Antworten gibt. Dein Vorschlag sieht gut aus.
Aber jetzt will ich endlich Fußball gucken.

Bis Morgen
mfg
Wolfgang

Antwort 5 von woher vom 29.09.2022, 18:30 Options

Hallo Oliver,
ich bin dabei ein AddIn mit diversen Makros zu erstellen, da soll auch "Blattschutz ein/aus" mit rein.
Deinen Vorschlag habe ich wie folgt angepasst (tatsächlich sind es schon mehr Menuepunkte):

Option Explicit
Sub MenueBI()
On Error Resume Next
Application.CommandBars.ActiveMenuBar _
.Controls("BIMakros").Delete
With Application.CommandBars.ActiveMenuBar.Controls.Add(Type:=msoControlPopup)
.BeginGroup = False 'Trennlinie
On Error GoTo 0
.Caption = "&BIMakros"

If ActiveSheet.ProtectContents = True Then
With .Controls.Add
.FaceId = 505
.Caption = "Blattschutz aus"
.OnAction = "Blattschutz_aus"
End With
Else: With .Controls.Add
.FaceId = 505
.Caption = "Blattschutz ein"
.OnAction = "Blattschutz_ein"
End With
End If
End With
End Sub

Hier funktioniert das zwar nicht als "quasi ein Wechselschalter".
In den Makros "...Schutz ein / aus" rufe ich einfach dieses Makro am Ende auf und das Menue wird gelöscht und erneut (verändert) erstellt.
Vielen Dank
Jetzt sehe ich mir auch noch deine Antwort auf meine zweite Frage an.
mfg
Wolfgang

Antwort 6 von coros vom 29.09.2022, 18:56 Options

Hallo Wolfgang,

Du musst in den Makros "Blattschutz_Ein" und "Blattschutz_Aus" am Ende jedesmal das Makro zum Erzeugen der Menüleiste erneut über

Call Makroname_zum_Erzeugen_der_Menüleiste
aufrufen, damit der Menüpunkt immer wechselmäßig sich ändert.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von woher vom 30.09.2022, 10:46 Options

Hallo Oliver,
ich hatte das bereits genau so gemacht. Das wollte ich oben schon mitgeteilt haben:
"In den Makros "...Schutz ein / aus" rufe ich einfach dieses Makro am Ende auf und das Menue wird gelöscht und erneut (verändert) erstellt."
Meine ursprüngliche Vermutung war, das sich so ein "Wechselschalter" innerhalb des Makros für die Menueleiste direkt erstellen lässt, deshalb hat es etwas gedauert bis ich auf obige Lösung gekommen war.
mfg
Wolfgang

Ähnliche Themen

Formel in Excel (Wert soll gleichbleiben)
mel1980  23.06.2009 - 417 Hits - 3 Antworten

Excel Termine an Outlook
JCool666  08.10.2009 - 518 Hits - 5 Antworten

Zellen auslesen
Aggi11  07.10.2009 - 289 Hits - 8 Antworten

Eingabe in Zelle aufspalten
Ulle-gt5  07.10.2009 - 299 Hits - 9 Antworten

Makro Menue einfügen
woher2010  24.05.2010 - 201 Hits - 11 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:Thu Jan 8 21:07:44 2026