AW: Toggle und letzte aktive Zelle
04.12.2020 15:28:32
Yal
Oops!
ich stelle jetzt fest, dass in meinem Vorschlag nicht
If Not False Then Target.EntireRow.Select
sondern
If Not ToggleButton1 Then Target.EntireRow.Select
If ToggleButton1 then
und
If ToggleButton1.Value = True then
sind übrigens vollkommene Equivalent (Value ist Default-Eigenschaft).
Das einzige Unterschied zwischen dein Code und meins (gemeint ist den korrigierten) ist, dass Du den Recall von b.Activate innerhalb der Bedingung abrufst. Da diese Reaktivierung nur notwendig ist, wenn die Selektierung auf die ganze Zeile gemacht wird, sind beide Version gleich.
Das Ausschalten/Umschalten von ToggleButton müsste in einer eigenen Ereignisprozedure stattfinden: entweder machst Du eine Selektion oder Du schaltest um. Beide gelichzeitig kann nicht sein.
um die Selektion und die ActiveCell beim Umschalten zu restaurieren, muss diese ausserhab speichern
Private memActiveCell As Range
Private memSelection As Range
Private Sub ToggleButton1_Click()
If ToggleButton1 Then
ToggleButton1.BackColor = RGB(0, 255, 0)
Else
ToggleButton1.BackColor = RGB(255, 255, 0)
End If
Application.EnableEvents = False
memSelection.Select
memActiveCell.Activate
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set memActiveCell = ActiveCell
Set memSelection = Target
Application.EnableEvents = False
If Not ToggleButton1 Then Target.EntireRow.Select
memActiveCell.Activate
Application.EnableEvents = True
End Sub
Viel Erfolg
Yal