Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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

Menüleiste Funktion deaktivieren

Menüleiste Funktion deaktivieren
25.01.2024 06:52:06
Angelo
Hallo zusammen,
ich stehe vor der Herausforderung, die "Menüleiste -> Ansicht -> Tabellenansicht" (wie im Bild zu sehen) für Benutzer in der jeweils geöffneten Datei zu deaktivieren.

Bild --> https://ibb.co/N1TSTNz

Alternativ wäre es hilfreich, wenn Änderungen an der Ansicht abgefangen werden könnten, um mit dem Code fortzufahren. Dies ist nur ein Beispiel für eine mögliche Vorgehensweise.

Dim Benutzer As String

Dim WS As Worksheet
Dim ActiveSheetView As String
Dim View As NamedSheetViewCollection

On Error Resume Next

Set WS = ThisWorkbook.Worksheets("Tabelle1")
Set View = WS.NamedSheetViews

ActiveSheetView = View.GetActive.Name
Benutzer = Environ("username")

If ActiveSheetView > Benutzer Then
ActiveSheet.NamedSheetViews.GetItem(Benutzer).Activate
End If


Das Ziel ist es, dass jeder Benutzer, der auf die Datei zugreift, seine eigene Ansicht hat. Diese Ansichten werden dynamisch durch ein Makro generiert, basierend auf verschiedenen Faktoren.

Ich habe bereits mehrere Stunden damit verbracht, nach möglichen Ansätzen zu suchen, jedoch bisher ohne Erfolg. Ich hoffe, dass mir hier jemand helfen kann, eine Lösung zu erarbeiten.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Menüleiste Funktion deaktivieren
25.01.2024 07:02:55
ralf_b
ein feiner Zug wäre gewesen du erwähntest das du im vba-forum und wer weis wo noch bereits gefragt hast.
AW: Menüleiste Funktion deaktivieren
26.01.2024 06:52:37
Angelo
Es ist bedauerlich, dass bislang niemand eine Lösung für mein Problem vorgeschlagen hat.
Ich frage mich, ob es eine Möglichkeit gibt, Ereignisse in der Menüleiste abzufangen, etwa durch eine Art "Change-Event".
Oder wäre es denkbar, dass auf Mausklicks in der Menüleiste reagiert wird?
Ich habe einige ältere Beiträge für Office 2007 gefunden, in denen so etwas möglich war, jedoch leider nichts für neuere Office-Versionen. Jede Idee oder Hilfestellung wird von mir dankbar entgegengenommen.
Vielen Dank.
Anzeige
AW: Menüleiste Funktion deaktivieren
31.01.2024 12:02:03
Angelo
@Oberschlumpf
Es tut mir leid, dass ich mich erst jetzt melde. Dein Link war auf jeden Fall hilfreich, und ich habe etwas gefunden, das mir möglicherweise weiterhelfen könnte.
Leider fehlt mir das Wissen, um es so anzupassen, dass es meinem Ziel entspricht. Es gibt ein Beispiel, in dem das Aufrufen und Schließen des Dateimenüs abgefangen wird. Hier ist der relevante Code:

 ">http://schemas.microsoft.com/office/2009/07/customui">









[url=https://ibb.co/mh0FJv2][img]https://i.ibb.co/mh0FJv2/2024-01-31-11-58-41-Ribbon-X-Workshop-Men-band-QAT-Teil-45-Mozilla-Firefox.jpg[/img][/url]

Option Private Module

Option Explicit

Public objRibbon As IRibbonUI

Public Sub onloadShow(Ribbon As IRibbonUI)
Set objRibbon = Ribbon
End Sub

Sub OnShow(control)
If ActiveWorkbook.Name > ThisWorkbook.Name Then Exit Sub
MsgBox "Dateimenü aufgerufen.", 64, "Hinweis"
End Sub

Sub OnHide(control)
If ActiveWorkbook.Name > ThisWorkbook.Name Then Exit Sub
MsgBox "Dateimenü geschlossen.", 64, "Hinweis"
End Sub


Wenn ich jetzt wüsste, wie ich den XML-Code so anpassen könnte, dass ich die Funktionen der Tabellenansicht abfangen kann, hätte ich mein Ziel erreicht.
Leider finde ich über Google nichts Brauchbares dazu, wie ich das umsetzen soll. Ich finde nur Anleitungen dazu, wie man eigene Knöpfe, Funktionen oder Tabs hinzufügt, nicht aber, wie man die vorhandenen abfängt.
Es könnte auch sein, dass ich mit falschen Begriffen suche oder einen Denkfehler in der Geschichte habe.
Vielleicht hat hier jemand eine gute Idee.

Vielen Dank für eure Hilfe.
Anzeige
AW: Menüleiste Funktion deaktivieren
31.01.2024 15:58:46
Oberschlumpf
Hi,

eine Lösung weiß ich noch immer nicht, aber...

...ein vielleicht-Denkfehler von dir kann sein, ...
...dass du nur Beschreibungen lieferst (die man durchaus auch falsch verstehen kann)
...dass du nur Bilder zeigst (Excel ist aber kein Bildbearbeitungsprogramm, sondern, zumindest für mich, so etwas wie ein "explodierter" Taschenrechner mit soo verdammt vielen mathematischen Funktionen)
...dass du uns nur Codeschnipsel zeigst (wir aber vielleicht deswegen nicht den ganzen Zusammenhang verstehen)
...und dass du uns leider nicht per Upload-Funktion aus diesem Forum mal bitte eine Excel-Bsp-Datei mit allem zeigst, was erforderlich ist, um dein Problem auch sehen zu können...und um dann mit der Bsp-Datei von dir testen zu können

Das ist alles nur meine Meinung. Natürlich kann auch ich mich irren.

Ciao
Thorsten
Anzeige
AW: Menüleiste Funktion deaktivieren
01.02.2024 08:54:46
Angelo
Herzlichen Dank für deinen Hinweis. Leider kann ich die Datei nicht hochladen, da vertrauliche Informationen enthalten sind. Allerdings habe ich dank deines bereitgestellten Links und ein wenig Recherche einige Erkenntnisse gewonnen:

  • Die Deaktivierung der Tabellenansicht per VBA ist von Office aus gesperrt.

  • Es scheint jedoch möglich zu sein, diese Funktionen mithilfe einer XML-Datei abzufangen.

  • Bedauerlicherweise gibt es nur begrenzte Informationen darüber, wie die XML-Datei angepasst werden muss und welche idMso dabei erforderlich ist.


  • Aktuell habe ich die XML-Datei folgendermaßen strukturiert (s. Bild und Code unten).

    [url=https://ibb.co/QJwmYdY][img]https://i.ibb.co/QJwmYdY/2024-02-01-08-12-39-Office-Ribbon-X-Editor.jpg[/img][/url]

    "" customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" ">"
    
    "" ribbon ">"
    "" tabs ">"
    "" tab idMso="TabView" ">"
    "" group idMso="GroupNamedSheetView" label="Sheet View" ">"
    "" comboBox idMso="SheetViewComboBox" label="View:" onChange="Anwesenheit Sage 2024.xlsm!OnSheetViewComboBoxChange"/ ">"
    "" button idMso="KeepTemporarySheetView" label="Keep Temporary View" onAction="Anwesenheit Sage 2024.xlsm!OnKeepTemporarySheetView"/ ">"
    "" button idMso="ExitSheetView" label="Exit Sheet View" onAction="Anwesenheit Sage 2024.xlsm!OnExitSheetView"/ ">"
    "" button idMso="NewSheetView" label="New Sheet View" onAction="Anwesenheit Sage 2024.xlsm!OnNewSheetView"/ ">
    "" button idMso="SheetViewOptions" label="Sheet View Options" onAction="Anwesenheit Sage 2024.xlsm!OnSheetViewOptions"/ ">"
    "" /group ">"
    "" /tab ">"
    "" /tabs ">"
    "" /ribbon ">"
    "" backstage onHide="Anwesenheit Sage 2024.xlsm!OnHide" onShow="Anwesenheit Sage 2024.xlsm!OnShow" ">"
    "" !-- Backstage Ribbon XML -- ">"
    "" /backstage ">"
    "" /customUI ">"


    Option Explicit
    

    Public Sub OnSheetViewComboBoxChange(control As IRibbonControl, text As String)
    MsgBox "Sheet View ComboBox geändert. Neue Auswahl: " & text, vbInformation, "Hinweis"
    End Sub

    Public Sub OnKeepTemporarySheetView(control As IRibbonControl)
    MsgBox "Keep Temporary Sheet View gedrückt.", vbInformation, "Hinweis"
    End Sub

    Public Sub OnExitSheetView(control As IRibbonControl)
    MsgBox "Exit Sheet View gedrückt.", vbInformation, "Hinweis"
    End Sub

    Public Sub OnNewSheetView(control As IRibbonControl)
    MsgBox "New Sheet View gedrückt.", vbInformation, "Hinweis"
    End Sub

    Public Sub OnSheetViewOptions(control As IRibbonControl)
    MsgBox "Sheet View Options gedrückt.", vbInformation, "Hinweis"
    End Sub

    Sub OnHide(control)
    If ActiveWorkbook.Name > ThisWorkbook.Name Then Exit Sub
    MsgBox "Dateimenü geschlossen.", 64, "Hinweis"
    End Sub

    Sub OnShow(control)
    If ActiveWorkbook.Name > ThisWorkbook.Name Then Exit Sub
    MsgBox "Dateimenü aufgerufen.", 64, "Hinweis"
    End Sub


    Der Abschnitt für das Abfangen des Dateimenüs funktioniert bereits.
    Leider gestaltet sich das Abfangen anderer Funktionen als schwieriger.
    In dem Bereich, wo momentan eine MsgBox erscheint, soll später die Überprüfung erfolgen, welche Tabellenansicht aktiv ist. Diese Funktionalität habe ich bereits, leider fehlt das auslöse Event.

    Mein Ziel ist es, Benutzern, die die Datei in SharePoint öffnen, je nach ihrer Identität oder Rolle unterschiedliche Ansichten zuzuweisen. Dabei sollen bestimmte Daten je nach Ansicht ausgeblendet oder eingeschränkt werden, um die Vertraulichkeit zu gewährleisten.

    Ich hoffe, dies verdeutlicht meine Herausforderung besser. Sollte etwas unklar sein, stehe ich gerne zur Verfügung und bin bereit, meine Fragestellung weiter zu präzisieren. Nochmals herzlichen Dank für deine Unterstützung; sie hat mich bereits erheblich vorangebracht.
    Ich denke, ich bin auf dem richtigen Weg zur Lösung, dank deiner Hilfe.
    Anzeige
    AW: Menüleiste Funktion deaktivieren
    01.02.2024 08:59:49
    Oberschlumpf
    Hi,

    wenn ich um eine BSP-Datei bitte, meine ich eine Beispiel-Datei, aber nicht die Originaldatei.
    Aber nun gut, ohne BSP-Datei kann zumindest ich nicht weiterhelfen.

    Und du müsstest eh einen neuen Beitrag erstellen, weil dieser hier im Forumsarchiv verschoben wurde.
    Ich (und du) können zwar noch antworten, aber auch nur, weil wir "Teilnehmer" dieses Beitrags sind.

    Weiter viel Erfolg!

    Ciao
    Thorsten
    AW: Menüleiste Funktion deaktivieren
    25.01.2024 07:51:45
    Angelo
    Ich werde das nächste Mal daran denken, es tut mir leid, dass es mir dieses Mal entgangen ist.
    Meine Anfrage habe ich bisher nur im VBA-Forum und hier gestellt.
    Nun hoffe ich nur noch, dass jemand eine Lösung oder alternative Ideen hat, wie ich mein Ziel erreichen kann. Leider stehe ich momentan vor keiner Lösung.
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige