ich habe eine Tabelle mit 3 Spalten und mehreren checkboxen in der dritten spalte pro Zeile.
Nun habe ich ein Formular gebaut mit dem ich die Zeilennummer der eizufügenden Zeile eintragen kann. Per VBA wird die markierte Zeile ermittelt und eine neue Zeile inkl. Checkbox eingefügt.
In den Eigenschaften jeder Checkbox habe ich eingestellt, dass die Checkboxen von der jeweiligen Zellposition abhängig ist.
Zum Problem:
Füge ich eine neue Zeile mit Checkbox ein, dann werden die darunter liegenden Checkboxen korrekterweise nach unten verschoben und bleiben auch in der jeweiligen Zelle.
Die darüber liegende jedoch, bleibt dort wo sie ist und wird somit durch die neu angelegte Checkbox überdeckt.
Wie bekomme ich es hin, dass die darüber liegende Checkbox auch nach oben verschoben wird und quasi in Ihrer eigenen Zelle bleibt, sodass sie nicht von der neu angelegten Checkbox überdeckt wird?
Möglicherweise ist ein ganz anderer Lösungsweg für Dich interressant. Der folgende Code ermöglicht es Dir, völlig auf die Checkboxen zu verzichten:
Private Sub Worksheet\_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Column 'Prüfe, in welche Spalte doppelt geklickt wurde
Case 3 'Spalte C
Cancel = True 'nicht auf Doppelklick "reagieren"
If Cells(Target.Row, Target.Column) = "a" Then
Cells(Target.Row, Target.Column).ClearContents
Else
Cells(Target.Row, Target.Column) = "a"
End If
End Select
End Sub
Kurze Funktionsbeschreibung:Wenn Du in Deine 3. Spalte doppelklickst, wird überprüft, ob ein „a“ in der entsprechenden Zeile steht. Falls ja, dann wird der Inhalt der Zelle gelöscht, ansonsten wird ein „a“ reingeschrieben.
Weist Du Deiner 3. Spalte die Schriftart „Marlett“ zu, dann wird das „a“ als Häkchen dargestellt.
Achtung: Der Code erfüllt momentan natürlich nur die beschriebene Funktion und muß noch ergänzt werden.
Wäre es denn für Dich interessant, auf die Checkboxen zu verzichten?