Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kontextmenü rücksetzen Excel 2016

Forumthread: Kontextmenü rücksetzen Excel 2016

Kontextmenü rücksetzen Excel 2016
15.11.2017 18:25:07
SteffenS
Hallo Zusammen,
ich habe ein seltsames Problem bei dem ich Eure Hilfe benötige.
Ich habe ein individuelles Kontextmenü in meiner Anwendung angelegt, welches ich beim Beenden der Anwendung per:
Application.CommandBars("Cell").Reset
Beim Beenden der Anwendung wieder zurücksetzen möchte.
Eingebaut ist dies beim schließen vor:
'prüfen ob noch eine Mappe offen ist
If Windows.Count > 1 Then
Workbooks(ThisWorkbook.Name).Close savechanges:=False
GoTo raus
Else
Windows(ThisWorkbook.Name).Activate
Application.Quit
Application.DisplayAlerts = False
Workbooks(ThisWorkbook.Name).Close savechanges:=False
End IF
Bis Excel 2010 funktioniert dies auch einwandfrei.
UnterExcel 2016 wird das Kontextmenü aber nicht nicht zurückgesetzt.
Führe ich den Befehl manuell aus so funktioniert es.
Ich habe es auch schon mit:
On Error Resume Next
Dim Leiste As CommandBar
For Each Leiste In Application.CommandBars
Leiste.Reset
Next
On Error GoTo 0
versucht.
Leider ohne Erfolg.
Was muss ich unter Excel 2016 tun um das Kontextmenü korrekt zurück zu setzen?
Danke Euch schon mal.
VG
SteffenS
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 19:53:13
onur
Versuch mal:
Leiste.Enabled = True

statt
Leiste.Reset

AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 20:01:44
Luschi
Hallo
das Resetten von Commandbars ist keine gute Idee; erstelle das Kontextmenü so, wie hier beschrieben
und nutze die 'Tag'-Eigenschaft zum kennzeichnen Deiner hinzugefügten Kontext-Einträge.
Dann kannst Du sie auch gezielt wieder entfernen:
https://www.rondebruin.nl/win/s6/win001.htm
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 21:17:16
SteffenS
Hallo Luschi,
danke für Deine Antwort. Ich habe mein Kontextmenü umgebaut und als Folge ist das Menü nach Beenden unter Excel 2016 nun komplett leer.
Mein Code ist beim beenden jetzt wie folgt:
Sub reset_kontextmenu()
Dim ContextMenu As CommandBar
Dim ctrl As CommandBarControl
Set ContextMenu = Application.CommandBars("Cell")
'Löschen Kontextmenü
For Each ctrl In ContextMenu.Controls
If ctrl.Tag Like "FCS_KM*" Then
ctrl.Delete
Else
ctrl.Visible = True
End If
Next ctrl
End Sub
Beim erzeugen blende ich die Einträge aus, was auch funktioniert.
For Each ctrl In ContextMenu.Controls
If Not ctrl.Tag Like "FCS_KM*" And ctrl.Visible = True Then ctrl.Visible = False
Next ctrl
Unter Excel 2010 funktioniert es Problemfrei
Habt ihr noch eine Idee.
VG Steffen
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 21:18:46
onur
Hast du MEINEN Vorschlag gelesen?
AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 21:55:37
SteffenS
Hallo Luschi
Ja habe ich und die Tags eingebaut.
Leider ohne Erfolg
VG
SteffenS
AW: Kontextmenü rücksetzen Excel 2016
15.11.2017 22:26:40
onur
Rede ich gegen die Wand oder liest du nicht wirklich, WER der Absender ist.
ONUR
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
16.11.2017 07:05:56
SteffenS
Hallo Unor,
danke für den Tipp. Leider funktioniert das mit
'Kontektmenü zurücksetzen
Application.CommandBars("Cell").Enabled = True
nicht. Es wird die das ursprüungliche Menü nicht wiederhergestellt.
Es passiert dabei leider gar nix.
VG Steffen
AW: Kontextmenü rücksetzen Excel 2016
16.11.2017 00:08:32
Luschi
Hallo SteffenS,
ich mache das mit dem Code von Ron de Bruin seit Jahren und es klappt wunderbar, auch in Excel 2016.
Habe es gerade noch mal ausprobiert. Dann zeige doch mal Deinen Code.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
16.11.2017 07:08:06
SteffenS
Hallo Luschi,
verwendet Du die Lösung mit dem Ribbon oder die "normale" VBA Lösung?
Mein Code:
Sub reset_kontextmenu()
Dim ContextMenu As CommandBar
Dim ctrl As CommandBarControl
Set ContextMenu = Application.CommandBars("Cell")
'Löschen Kontextmenü
For Each ctrl In ContextMenu.Controls
If ctrl.Tag Like "FCS_KM*" Then
ctrl.Delete
Else
ctrl.Visible = True
End If
Next ctrl
End Sub
Beim Erzeugen mache ich zum Deaktivieren folgendes
'Normale Einträge ausblenden
If ADMALLG.Range("X42").Value <> pr_art Then
For Each ctrl In ContextMenu.Controls
If Not ctrl.Tag Like "FCS_KM*" And ctrl.Visible = True Then ctrl.Visible = False
Next ctrl
End If
~f~
Das rücksetzen mache ich beim beenden wie folgt:
'Kontektmenü einschalten
reset_kontextmenu
'prüfen ob noch eine Mappe offen ist
If Windows.Count > 1 Then
Workbooks(ThisWorkbook.Name).Close savechanges:=False
GoTo raus
Else
Windows(ThisWorkbook.Name).Activate
Application.Quit
Application.DisplayAlerts = False
Workbooks(ThisWorkbook.Name).Close savechanges:=False
End If
raus:
~f
Danke Dir nochmal vielsmals :-)
VG Steffen
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
17.11.2017 07:25:36
SteffenS
Hallo Luschi,
ich verwende nur den VBA Code nicht die Ribbon-Variante.
VG Steffen
AW: Kontextmenü rücksetzen Excel 2016
16.11.2017 07:56:48
Nepumuk
Hallo Steffen,
hör auf eingebaute Menüs zu verbiegen. Erzeuge ein eigenes Popup-Menü und reagiere auf den Rechtsklick in der Tabelle.
Gruß
Nepumuk
AW: Kontextmenü rücksetzen Excel 2016
17.11.2017 07:26:39
SteffenS
Hallo Nepukmuk,
hast Du hierzu ein Beispiel, da ich dies bisher noch nicht gemacht habe.
Danke Dir.
VG Steffen
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
19.11.2017 08:35:50
SteffenS
Hallo Nepumuk,
danke für den Tipp. Damit klappt es wirklich gut.
Eine Frage hätte ich allerdings noch.
Wie zeige ich bei Bedarf das normale Kontextmenü beim Rechtsklick an?
Ich kann das Erzeugte zwar entfernen, dann habe ich allerdings gar keines mehr.
Danke Dir.
VG SteffenS
Anzeige
AW: Kontextmenü rücksetzen Excel 2016
19.11.2017 09:18:58
SteffenS
Hallo,
habe es gelöst.
Indem ich die Cancel-Eigenschaft angepasst habe:
Mein Code im Blatt sieht nun so aus:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim IntVersion As Boolean
IntVersion = Application.Run(xmenu & "!allg_fkt.IstVersion")
'Prüfung der Version
If IntVersion = False Then
Cancel = True
Application.Run (xmenu & "!allg_kmenu.kmenu_show")
End If
End Sub

Anzeige
AW: Kontextmenü rücksetzen Excel 2016
19.11.2017 16:11:20
Luschi
Halle SteffensS,
Wahrheitswert-Prüfungen sollte man so machen:
statt: If IntVersion = False Then
so: If Not(IntVersion) Then
statt: If IntVersion = True Then
so: If IntVersion Then
Gruß von Luschi
aus klein-Paris
Hintergrund: alle 'If', 'While', 'Loop While' usw. werten nur das Endergebnis des Prüfungsvergleichs aus, also True bzw False aus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Kontextmenü zurücksetzen in Excel 2016


Schritt-für-Schritt-Anleitung

Um das Excel Kontextmenü zurückzusetzen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Modul: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub reset_kontextmenu()
       Dim ContextMenu As CommandBar
       Dim ctrl As CommandBarControl
       Set ContextMenu = Application.CommandBars("Cell")
    
       'Löschen Kontextmenü
       For Each ctrl In ContextMenu.Controls
           If ctrl.Tag Like "FCS_KM*" Then
               ctrl.Delete
           Else
               ctrl.Visible = True
           End If
       Next ctrl
    End Sub
  4. Aktiviere das Kontextmenü: Nutze den Befehl Application.CommandBars("Cell").Enabled = True, um das Menü wiederherzustellen.

  5. Testen: Schließe Excel und öffne es erneut, um zu überprüfen, ob das Kontextmenü korrekt zurückgesetzt wurde.


Häufige Fehler und Lösungen

  • Das Kontextmenü funktioniert nicht: Überprüfe, ob du den richtigen Befehl Application.CommandBars("Cell").Reset verwendest. Manchmal kann es helfen, das Menü manuell zu aktivieren.
  • Leeres Kontextmenü: Stelle sicher, dass du die Tags korrekt gesetzt hast. Wenn du Tags verwendest, um Einträge zu identifizieren, müssen sie im Code berücksichtigt werden.
  • VBA-Code wird nicht ausgeführt: Vergewissere dich, dass Makros in den Excel-Einstellungen aktiviert sind.

Alternative Methoden

Eine alternative Methode, um das Kontextmenü in Excel zurückzusetzen, besteht darin, ein eigenes Popup-Menü zu erstellen und auf den Rechtsklick zu reagieren. Hier ein Beispiel:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True ' Standard Kontextmenü deaktivieren
    ' Hier kannst du dein benutzerdefiniertes Menü anzeigen
    Application.CommandBars("CustomMenu").ShowPopup
End Sub

Du kannst das benutzerdefinierte Menü dann bei Bedarf aktivieren oder deaktivieren.


Praktische Beispiele

Hier ist ein Beispiel, wie du das Kontextmenü aktivieren kannst:

Sub AktiviereKontextmenü()
    Application.CommandBars("Cell").Enabled = True
End Sub

Um das Kontextmenü zurückzusetzen, verwende:

Sub ZurücksetzenKontextmenü()
    Application.CommandBars("Cell").Reset
End Sub

Diese Codes helfen dir, die Funktionen des Kontextmenüs in Excel anzupassen und zu steuern.


Tipps für Profis

  • Verwende die Tag-Eigenschaft: Markiere deine benutzerdefinierten Menüeinträge mit Tags, um sie später gezielt löschen oder anzeigen zu können.
  • Versionskontrolle: Stelle sicher, dass dein VBA-Code sowohl in älteren als auch in neueren Excel-Versionen funktioniert. Führe regelmäßige Tests durch.
  • Dokumentation: Halte deine VBA-Codes gut dokumentiert, damit du die Funktionen und deren Nutzung leicht nachvollziehen kannst.

FAQ: Häufige Fragen

1. Warum funktioniert mein Excel Kontextmenü nicht mehr?
Es könnte sein, dass du deine benutzerdefinierten Einträge nicht korrekt implementiert hast. Überprüfe deine Tags und die Sichtbarkeitseinstellungen.

2. Wie kann ich das ursprüngliche Kontextmenü wiederherstellen?
Du kannst das ursprüngliche Kontextmenü zurücksetzen, indem du den Befehl Application.CommandBars("Cell").Reset verwendest.

3. Was ist der Unterschied zwischen Reset und Enabled?
Reset stellt das Kontextmenü auf die Standardwerte zurück, während Enabled das Menü aktiviert oder deaktiviert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige