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