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

Tab Entwicklertools aus/einblenden

Tab Entwicklertools aus/einblenden
27.06.2023 09:59:55
Peer

Hallo zusammen.

Ich habe schon lange ein großer Projekt mit einer Excel-Datei, das ich auch den Kollegen zur Verfügen stelle und meistens läuft es auch super. Nur ab und zu kommen Fehler zum Vorschein, die sich erst im täglichen Umgang einschleichen. ;-)
Deshalb habe ich eine Frage.
Ich habe ein eigenes Ribbon in meine Excel-Datei und habe alle Standard-Ribbons für die Kollegen ausblenden lassen. Somit ist nur noch (m)ein Reiter beim Start der Datei zu sehen.
In meinem Ribbon habe ich ein paar Button die ich in die Gruppe "Administrator", mit denen ich bei Anpassungen gewisse Funktionen mit Passwort freischalten kann, wie z.B. den Blattschutz. Nun möchte ich gern noch einen weiteren Button in meine Symbolleiste einbauen, der das Standard-Tab "Entwicklertools" einblendet und beim Schließen bzw beim erneuten Öffnen wieder ausblendet.
Im Netz konnte ich dazu Informationen wie ActivateTab(Mso) finden, nur nicht den Reiter"name" speziell. Auch die ControlID konnte ich nicht rausfinden.
Ich bin hier leider noch zu grün und wollte versuchen, ob ich auf dem richtigen Weg bin.

Vielleicht hat jemand ein wenig Infos für mich. Dafür bedanke ich mich schon einmal im Voraus.

MFG
Peer

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tab Entwicklertools aus/einblenden
27.06.2023 17:46:29
Peer
Hallo onur.

Danke für deinen Hinweis.
Dann scheint es (bis jetzt) noch keine Lösung zu geben.

MFG
Peer


AW: Tab Entwicklertools aus/einblenden
27.06.2023 18:37:54
onur
Wieso setzt du nicht einfach den "Projektschutz" ?


AW: Tab Entwicklertools aus/einblenden
27.06.2023 19:57:18
Peer
Hallo onur.

Mit ALT+F11 und VBA-Projekt Schutz war bis jetzt meine Lösung.
Aber Nepumuk's Tipp ist eleganter. ;-) (ich bin halt neugierig...)

Danke für deine Hilfe, onur.


Anzeige
AW: Tab Entwicklertools aus/einblenden
27.06.2023 20:35:12
Peer
Hallo Nepumuk.

Also ist es doch möglich!
Du bist der Wahnsinn....

Vielen vielen Dank.
Nun versuche ich noch, dein Button-Event in mein Projekt an einen Button im eigenen Ribbon einzubauen.
Das wird aber noch dauern... ;-)

Gruß Peer


AW: Tab Entwicklertools aus/einblenden
28.06.2023 19:55:13
Peer
Hallo Nepumuk.
Ich probiere seit gestern, deine Hilfe in das Ribbon meines vorhandenes Projektes einzubauen. Leider ohne Erfolg. Entweder tut er gar nix, oder bringt Fehlermeldungen.
Leider ist die Datei des Projektes zu groß, um es hochzuladen. Entweder es würde reichen, wenn ich den den XML Code für Ribbon als Datei hochlade und den VBA-Code aus dem Projekt für die Ribbon Callbacks (ein wenig an deinen Code geändert, damit ich nicht alles von vorn anpassen muss), oder ich lass es und gehe in alter Vorgehensweise ran und ändere vor dem Laden der Datei den XMLCode "startFromScratch="true" in "false".

XML-File: https://www.herber.de/bbs/user/159755.zip
Option Explicit

Public gobjRibbon As IRibbonUI
Public lblnVisible As Boolean

'Callback for customUI.onLoad
Sub Load_Ribbon(ribbon As IRibbonUI)
    Set gobjRibbon = ribbon
End Sub

'Callback for Art161 onAction
Sub Art161_onAction(control As IRibbonControl, pressed As Boolean)
    Dim vntTemp() As Variant
    If pressed Then
        ActiveSheet.Unprotect
        ActiveSheet.Range("F12:F43").Font.ColorIndex = 2
        ActiveSheet.Protect
    Else
        ActiveSheet.Unprotect
        ActiveSheet.Range("F12:F43").Font.ColorIndex = 1
        ActiveSheet.Protect
    End If
    vntTemp() = Evaluate(ActiveSheet.Name)
    vntTemp(1) = pressed
    ThisWorkbook.Names.Item(ActiveSheet.Name).RefersTo = vntTemp
End Sub

'Callback for ArtFAE onAction
Sub ArtFAE_onAction(control As IRibbonControl, pressed As Boolean)
    Dim vntTemp() As Variant
    If pressed Then
        ActiveSheet.Unprotect
        ActiveSheet.Range("G12:G43").Font.ColorIndex = 2
        ActiveSheet.Protect
    Else
        ActiveSheet.Unprotect
        ActiveSheet.Range("G12:G43").Font.ColorIndex = 1
        ActiveSheet.Protect
    End If
    vntTemp() = Evaluate(ActiveSheet.Name)
    vntTemp(2) = pressed
    ThisWorkbook.Names.Item(ActiveSheet.Name).RefersTo = vntTemp
End Sub

'Callback for Art081 onAction
Sub Art081_onAction(control As IRibbonControl, pressed As Boolean)
    Dim vntTemp() As Variant
    If pressed Then
        ActiveSheet.Unprotect
        ActiveSheet.Range("H12:H43").Font.ColorIndex = 2
        ActiveSheet.Protect
    Else
        ActiveSheet.Unprotect
        ActiveSheet.Range("H12:H43").Font.ColorIndex = 1
        ActiveSheet.Protect
    End If
    vntTemp() = Evaluate(ActiveSheet.Name)
    vntTemp(3) = pressed
    ThisWorkbook.Names.Item(ActiveSheet.Name).RefersTo = vntTemp
End Sub

'Callback for Art091 onAction
Sub Art091_onAction(control As IRibbonControl, pressed As Boolean)
    Dim vntTemp() As Variant
    If pressed Then
        ActiveSheet.Unprotect
        ActiveSheet.Range("I12:I43").Font.ColorIndex = 2
        ActiveSheet.Protect
    Else
        ActiveSheet.Unprotect
        ActiveSheet.Range("I12:I43").Font.ColorIndex = 1
        ActiveSheet.Protect
    End If
    vntTemp() = Evaluate(ActiveSheet.Name)
    vntTemp(4) = pressed
    ThisWorkbook.Names.Item(ActiveSheet.Name).RefersTo = vntTemp
End Sub

'Callback for SonstAngaben onAction
Sub SonstAngaben_onAction(control As IRibbonControl, pstrId As String, Index As Integer)

ActiveSheet.Unprotect
    Select Case Index
        Case 0
            Call SonstAngaben_Frei
        Case 1
            Call SonstAngaben_ArbZ
    End Select

ActiveSheet.Protect

End Sub

'Callback for Art161 getPressed
Sub Art161_getPressed(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = Evaluate(ActiveSheet.Name)(1)
            Exit For
        End If
    Next
End Sub

'Callback for ArtFAE getPressed
Sub ArtFAE_getPressed(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = Evaluate(ActiveSheet.Name)(2)
            Exit For
        End If
    Next
End Sub

'Callback for Art081 getPressed
Sub Art081_getPressed(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = Evaluate(ActiveSheet.Name)(3)
            Exit For
        End If
    Next
End Sub

'Callback for Art091 getPressed
Sub Art091_getPressed(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = Evaluate(ActiveSheet.Name)(4)
            Exit For
        End If
    Next
End Sub
'Callback for SonstAngaben getPressed
Sub dropDownSonstAngaben_getPressed(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = Evaluate(ActiveSheet.Name)(4)
            Exit For
        End If
    Next
End Sub

'Callback for Art161-Art091 getEnabled
Sub ausblenden_getEnabled(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = True
            Exit For
        End If
    Next
End Sub

'Callback for SonstAngaben getEnabled
Sub dropDownSonstAngaben_getEnabled(control As IRibbonControl, ByRef returnedVal)
    Dim lngMonth As Long
    returnedVal = False
    For lngMonth = 1 To 12
        If ActiveSheet.Name = MonthName(lngMonth) Then
            returnedVal = True
            Exit For
        End If
    Next
End Sub

'Private Sub Ribboin_OnLoad(ByRef probjRibbon As IRibbonUI)
''    Set lobjRibbon = probjRibbon
'    Set gobjRibbon = probjRibbon
'End Sub

Sub TabDeveloper_getVisible(ByRef probjControl As IRibbonControl, ByRef prvntReturnedVal As Variant)
    prvntReturnedVal = lblnVisible
End Sub

Sub ShowDevelopertools(control As IRibbonControl, ByRef lblnVisible)
    lblnVisible = Not lblnVisible
'    Call lobjRibbon.Invalidate
    Call gobjRibbon.Invalidate
End Sub
Vielleicht findet jemand den/die Fehler. Danke schon mal dafür.

Mit besten Gruß
Peer


Anzeige
AW: Tab Entwicklertools aus/einblenden
28.06.2023 19:58:46
onur
Und wo steht
Option Private Module


AW: Tab Entwicklertools aus/einblenden
28.06.2023 20:04:23
Peer
Da habe ich keine Ahnung.

Ich dachte bis jetzt immer, dass man dies nur braucht, wenn man
Private Sub
nutzt?


AW: Tab Entwicklertools aus/einblenden
28.06.2023 20:08:25
onur
Das ist absoluter Quatsch.
Wenn du Nepumuks Code benutzen willst, solltest du ihn auch exakt so bei dir einbauen und nicht deine Interpretation davon.


AW: Tab Entwicklertools aus/einblenden
28.06.2023 20:26:24
Peer
Nepumuks Code war für einen Button in der Tabelle, ich wollte ihn in mein Ribbon einbauen. Deshalb habe ich anpassen wollen.

Wahrscheinlich habe ich mich von dem Web-Eintrag hier
https://www.online-excel.de/excel/singsel_vba.php?f=16
beim letzten Absatz irritieren lassen und habe deshalb darauf verzichtet.


Anzeige
AW: Tab Entwicklertools aus/einblenden
27.06.2023 10:56:07
snb
[quote]Ich habe ein eigenes Ribbon in meine Excel-Datei und habe alle Standard-Ribbons für die Kollegen ausblenden lassen. Somit ist nur noch (m)ein Reiter beim Start der Datei zu sehen.[/quote]

Wie macht man sich unbeliebt bei Kollegen.


AW: Tab Entwicklertools aus/einblenden
27.06.2023 17:44:02
Peer
Hallo snb.
Wie macht man sich unbeliebt bei Kollegen.
Ich kann mit der Antwort nichts anfangen. Ich versuche gerade heraus zu finden, welcher Teil der Antwort mir weiterhilft.

Grundsätzlich muss ich (leider) alles ausblenden lassen, da die meisten Kollegen mit Computer und ihre Anwendungen auf Kriegsfuß stehen und selbst von den Office-Programmen mit ihrer Vielfalt überfordert sind. Und um sie nicht unnötig damit zu verwirren, habe ich mich dazu entschieden, alles nicht (für sie) Relevante auszublenden.


Anzeige
AW: Tab Entwicklertools aus/einblenden
27.06.2023 22:49:15
mumpel
alles nicht (für sie) Relevante auszublenden
Aber Kenner machen das alles rückgängig. ;)


AW: Tab Entwicklertools aus/einblenden
28.06.2023 08:38:59
Pierre
Wenn man allerdings mit den "normalen" Schaltflächen schon derart überfordert ist, ist man sicherlich kein Kenner.

Unbeabsichtigtes rückgängig machen durch wildes Klicken kann man natürlich widerum nicht ausschließen ;-)


AW: Tab Entwicklertools aus/einblenden
28.06.2023 09:14:47
Peer
Ich weiß. ;-)
Aber ich will es ihnen ein wenig erschweren...


AW: Tab Entwicklertools aus/einblenden
28.06.2023 12:15:16
mumpel
Unbeabsichtigtes rückgängig machen durch wildes Klicken kann man natürlich widerum nicht ausschließen
Wenn man über "Workbook_Open" per "Application-OnKey" die Tastenkombination "STRG+Z" und die Ribbon-Funktion "Undo" über die Command-Ebene in RibbonX auf ein Makro umlenkt, wäre das Rückgängigmachen abgeschaltet. Man kann ja auch hierbei zwischen Anwender und Administrator unterscheiden (Admins dürfen rückgängig machen, Anwender nicht).


Anzeige
AW: Tab Entwicklertools aus/einblenden
27.06.2023 22:34:45
mumpel
Wie macht man sich unbeliebt bei Kollegen.
Es kann Gründe geben, weshalb man eine Exceldatei absichert. ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige