Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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
Inhaltsverzeichnis

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

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
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
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
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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige