Hallo allerseits,
vor einiger Zeit wurde mir hier im Forum mit folgendem Code dabei geholfen meine Checkboxen umzubenennen:
Private Sub RenameCheckBox2()
'refresh checkbox names from defined list
Dim rngNames As Excel.Range
Dim shp As Excel.Shape
Dim i As Long
On Error GoTo ErrHandler
'Hidden column with list of names (all subcategories)
Set rngNames = Worksheets("Lists").Range("R:R")
With Worksheets("Checklist Structure")
For Each shp In .Shapes
If shp.Type = msoFormControl Then
If shp.FormControlType = xlCheckBox Then
If i < rngNames.Cells.count Then
i = i + 1
Debug.Print Format$(i, "000") & ": " & shp.OLEFormat.Object.Name & " => " & rngNames.Cells(i).Value
shp.OLEFormat.Object.Name = rngNames.Cells(i).Value
Else
Exit For 'exit because no names left
End If
End If
End If
Next
End With
Exit Sub
ErrHandler:
Call MsgBox(Err.Description, vbCritical, "Fehler " & Err.number)
End Sub
Nun stelle ich fest, dass dieser Code nicht alle "Eventualitäten" abdeckt, d.h. der Name kann verschiedene Formate aufweisen. Ich bin mir nicht sicher wie sinnvoll das ist, aber am liebsten wäre es mir, wenn die Checkboxen "spaltenweise" von oben nach unten einen Namen aus einem Bereich zugewiesen bekommem (bzw. der alte Name ersetzt wird nach dem Schema erste Checkbox bekommt ersten Wert als Namen). Ist dieser Ansatz sinnvoll? Könnte mir bitte jemand mir der Änderung helfen? Schon mal vielen Dank dafür.
Viele Grüße
|