Zmiana zaznaczenia w arkuszu

Worksheet_SelectionChange to jedno ze zdarzeń arkusza , automatycznie wykrywające zaznaczenia w arkuszu.

kliknij, aby powiększyć

Procedura ta znajduje się w module arkusza. Ma jeden argument Target , typu Range. Argument ten informuje, która komórka/komórki została zaznaczona. 

Procedura Worksheet_SelectChange jest często stosowana i  ma różne praktyczne zastosowania.  Warto jednak stosować ją rozsądnie i z przemyśleniem, gdyż bardzo łatwo można doprowadzić do zapętlenia. 

W niektórych przypadkach warto też zastanowić się nad wyłączaniem zdarzeń – przydaje się.


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

Zmiana w arkuszu

Worksheet_Change to jedno ze zdarzeń arkusza , automatycznie wykrywające zmianę w komórce.

kliknij, aby powiększyć

Procedura ta znajduje się w module arkusza (każdy arkusz skoroszytu ma swój własny moduł).
Ma jeden argument Target , typu Range. Argument ten informuje, która komórka/komórko zostały zmienione.
Zmiana komórki oznacza zmianę jej wartości, wpisanej ręcznie/wprowadzonej kodem VBA.  Komórki, w których znajdują się formuły, nawet jeżeli zmieniają swoją wartość na skutek zmiany argumentów, nie są w ten sposób wykrywane. 

Procedura Worksheet_Change jest często stosowana i  praktyczna. Jeżeli istotna jest dla mnie tylko jednak komórka (np.A1), zmiana której powinna uruchomić  jakąś procedurę, robię to tak jak w przykładzie:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
       ’odwołanie do ciągu instrukcji lub innego makra
End If
End Sub

W tym przypadku zmiana w każdej innej komórce wprawdzie wywoła zmianę, ale jeżeli nie wejdzie w warunek, ciąg instrukcji nie zostanie wykonany.
Ja w swoich projektach najczęściej stosuję stosuję też zasadę, żeby najpierw sprawdzać ilość komórek w zakresie. Może mieć to znaczenie, szczególnie jeśli zakres jest wielokomórkowy, a istotna jest wartość zmienianej komórki.
W niektórych przypadkach warto też zastanowić się nad wyłączaniem zdarzeń – przydaje się.


Kurs Excel programowanie w VBA

 

Aktywacja arkusza

Każdy arkusz w skoroszycie Excela ma swój własny moduł edytora VBA. Można tam tworzyć procedury automatycznie uruchamiane zdarzeniami arkusza
Jednym z często stosowanych takich zdarzeń jest Aktywacja arkusza.

kliknij, aby powiększyć

Procedura Worksheet_Activate() jest uruchamiana zawsze przy aktywacji skoroszytu.

Przykład takiej procedury przechodzącego do pierwszej komórki aktywowanego arkusza to:

Private Sub WorkSheet_Activate()
Range(„A1”).Activate
End Sub

Ja w swoich projektach najczęściej stosuję tę metodę do ukrycia/odkrycia pewnych obszarów, ustawienia obszaru wydruku itp.


Kurs Excel programowanie w VBA

 

Zdarzenia arkusza

Zdarzenia arkusza to procedury wyzwalane automatycznie poprzez konkretne metody związane z konkretnym arkuszem, w module którego  są umieszczone. Każdy arkusz ma swój własny moduł, w którym można ustawić jego procedury.

Po wybraniu z lewej strony Worksheet, z prawej strony możemy wybrać konkretne zdarzenie:

kliknij, aby powiększyć

Najczęściej stosowane zdarzenia arkusza to:

    • Activate
      aktywacja arkusza
    • BeforeDoubleClick
      przed podwójnym kliknieciem
    • BeforeRightClick
      przed kliknięciem prawym przyciskiem myszy
    • Change
      przy zmianie
    • SelectionChange
      po zmianie zaznaczenia

Na liście można znaleźć ich więcej, ale na początek wystarczą te, są najczęściej używane.


Kurs Excel programowanie w VBA