Danke schön für die Hilfestellung. Habe versucht die Empfehlungen umzusetzen, scheitere allerdings an der korrekten Deklaration. Der Code sieht nun so aus:
Private Sub CompareCheckboxNames()
Dim ws As Worksheet
Dim rng As Excel.Range
Dim rngRes As Excel.Range
Dim shp As Shape
Dim myText As String
On Error GoTo ErrHandler
Set ws = Worksheets("Risk Category Checklist")
Set rngRes = ws.Range("G:G")
Set shp = Worksheets("Checklist Structure").Shapes
myText = shp.OLEFormat.Object.Name.Characters.Text
Set rngRes = rng.Find(myText, LookIn:=xlValues)
With Worksheets("Checklist Structure")
For Each shp In .Shapes
If shp.Type = msoFormControl Then
If shp.FormControlType = xlCheckBox Then
If rngRes.Value = myText Then
shp.OLEFormat.Object.Value = True
Else
shp.OLEFormat.Object.Value = False
End If
Exit For
End If
End If
Next
End With
Exit Sub
ErrHandler:
Call MsgBox(Err.Description, vbCritical, "Fehler " & Err.number)
End Sub
Ich erhalte nun in Zeile 10 den Fehler 13 "Type mismatch". Ich weiß langsam nicht mehr weiter bzw. was ich noch ausprobieren muss, damit ich zumindest über diese blöde Stelle hinauskomme. Wie muss denn die korrekte Deklaration im vorliegenden Fall lauten? Und habe ich Deiner Meinung die Überprüfung der Werte richtig umgesetzt? Schon mal vielen Dank für die Geduld und Hilfe.
Beste Grüße,
Eine zunehmend verzweifelte Corina...
|