Zobacz kurs wideo Mistrz Excela
Zobacz fragment książki 30 filmów z nim powiązanych
Na karcie Deweloper istnieje możliwość dodawania checkboxów ale problematyczne jest odwoływanie się i sprawdzanie statusu jednocześnie wielu checkboxów.
Na szczęście istnieje sztuczka związana ze wstawianiem znaków które wyglądają jak checkboxy.
Mogą to być np: znaki z fontu Wingdings o kodzie 168 i 254.
Jeśli dołożymy do tego nazwanie zakresu w tym przykładzie Status to za pomocą VBA i eventu Worksheet_SelectionChange możemy sprawić że stan checkboxów będzie się zmieniał po zmianie zaznaczenia przykładowy kod może wyglądać następująco:
Private Sub Worksheet_SelectionChangeByVal Target As Range
Sprawdzamy czy interesujący nas zakres Status ma część wspólną Intersect
z zakresem po zmianie zaznaczenia Target
If Not IntersectTarget RangeStatus Is Nothing Then
Jeśli zaznaczyliśmy więcej niż 1 komórkę to wychodzimy z makra
If Target.Count większe niż 1 Then Exit Sub
Jeśli znak w zaznaczonej komórce ma wartość 168 to zmieniamy go na znak o kodzie 254
If Target.Value Chr168 Then Target.Value Chr254
w przeciwnym razie zmieniamy znak na 168
Else: Target.Value Chr168
End If
End Sub
Więcej o checkboxach:
Wingdings in VBA:
Pliki do pobrania na stronie:
Источник: rutube.ru