Mir kam gerade ein Gedanke...
Beim Frame:
With shpFrame
.Name = SC_FRM_PREFIX & Replace$(.Name, " ", "")
und bei der CheckBox
With shpChk
.Name = SC_CHK_PREFIX & Mid$(shpFrame.Name, Len(SC_FRM_PREFIX) + 1)
Jetzt kann man, dadurch das die Namen nach dem Präfix zwischen Frame und CheckBox gleich sind, den zu suchenden Text aus dem Frame lesen, statt aus der Zelle (welche ja nicht zwangsweise stimmen muss - aus dem Grund hab ich das mit der Zelladresse im Namen auch vermeiden wollen).
'////////////////////////////////////////////////////////////////
'//
Private Sub RefreshSubcategoryCheckBox(CheckBox As Object)
Dim rngSubcategoryCol As Excel.Range
Dim rngResult As Excel.Range
Dim shpFrame As Excel.Shape
Set shpFrame = CheckBox.Parent.Shapes(SC_FRM_PREFIX & Mid$(CheckBox.Name, Len(SC_CHK_PREFIX) + 1))
Set rngSubcategoryCol = ThisWorkbook.Worksheets(SC_WKS_DATATABLE_NAME).Columns("G")
Set rngResult = rngSubcategoryCol.Find(shpFrame.TextFrame2.TextRange.Text, LookIn:=xlValues, LookAt:=xlWhole)
CheckBox.Value = Not (rngResult Is Nothing)
End Sub
|