Ich bins mal wieder ;)
Folgendes:
Über die Funktion
Sub Checkliste()
Dim cell As Range
Dim norow As Integer
norow = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
For Each cell In Range("C2:C" & norow)
With ActiveSheet.CheckBoxes.Add(cell.Left, _
cell.Top, cell.Width, cell.Height)
.LinkedCell = cell.Offset(, 1).Address(External:=True)
.Interior.ColorIndex = xlNone 'or xlNone or xlAutomatic
.Caption = ""
.Value = xlOff ' Häckchen gesetzt oder nicht
'.Border.Weight = xlThin
End With
Next
With Range("C2:C" & norow)
.Rows.RowHeight = 15
End With
End Sub
werden in den Blatt "PM" in Spalte C für jede Zeile eine Checkboxen erstellt.Spalte A enthält Gliederungspunkte für den Inhalt in Spalte B
z.b.
1.2 Werkzeug CHECKBOX
1.2.1 Bohrer CHECKBOX
1.2.1.1 Bohrkopf CHECKBOX
Jetzt will ich, dass wenn ich z.B. Punkt 1.2 in der Checkbox markiere, automatisch(dynamisch)alle Unterpunkte (1.2.1, 1.2.1.1, usw...) auch sofort markiert sind oder z.b. den Punkt 1. markiere alle Punkte unter 1. markiert sind...
Meine Überlegung war in die Richtung:
- schreibe in z.b. Spalte E3 "wahr", wenn Checkbox in C3 angeklickt
- Überprüfe, wenn E3 = wahr, ob A3 Untergliederungspunkte hat
- wenn A3 Untergliederungspunkte hat, Value=xlon bei den betreffenden Checkboxes
1. Problem:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
Dim k As Integer
i = Worksheets("PM").Range("A65536").End(xlUp).Row
For k = 1 To i
If Worksheets("PM").CheckBoxes(k).Value = 1 Then
Worksheets("PM").Cells(k + 1, 5).Value = "wahr"
End If
Next k
End Sub
Erkennt nicht, wenn ich eine Checkbox markiere, sondern nur, wenn ich auf eine Zelle klick, dann schreibt er erst "wahr" in Spalte E.2. Problem:
Keine Ahnung, wie ich vom Ansatz her, das 1. Problem löse und den nötigen Code für die dynamische Befüllung (Value.xlon) der Checkboxes entwickle.
Wer eine Ahnung/Idee sowas schon mal gemacht?
Gruß+Danke!
Alex