Makro uruchamiane w zależności od wpisu w komórce

Data: 24-06-2014 r.

Sposobów na uruchamianie makr w Excelu jest bez liku. Możemy to zrobić za pomocą przycisku wstawionego do arkusza, poprzez okno dialogowe Makra lub uzależnić uruchomienie procedury od akcji wykonanej w arkuszu lub w skoroszycie.

W tym triku pokażemy pewną interesującą kombinację, która na pewno okaże się pomocna w naszej pracy. Kod Visual Basic będzie uruchamiany tylko wówczas, gdy w określonej komórce pojawi się dany tekst.

Aby taki efekt uzyskać:

  1. Otwieramy Edytor Visual Basic za pomocą kombinacji klawiszy lewy Alt + F11.

  2. Z menu Insert wybieramy polecenie Module.

  3. Wpisujemy kod przedstawiony na rysunku 1.

Rys. 1. Kod Visual Basic

  1. Zapisujemy i zamykamy Edytor VBA.

Nasze makro nosi nazwę MojeMakro, natomiast do jego uruchamiania utworzyliśmy dodatkową funkcję użytkownika o nazwie UruchomMojeMakro. Możemy z niej korzystać jak z normalnej funkcji arkuszowej. Tę właściwość wykorzystamy do zagnieżdżenia jej w funkcji warunkowej JEŻELI. Przyjmijmy, że makro MojeMakro ma zostać uruchomione tylko wówczas, gdy w komórce A1 pojawi się tekst Start.

Aby taki efekt uzyskać:

  1. Do dowolnej pustej komórki arkusza wpisujemy następującą formułę:

=JEŻELI(A1=”Start”;UruchomMojeMakro();”Podajemyemy słowo uruchamiające”)

  1. Teraz wpisujemy do komórki A1 tekst Start i wciskamy klawisz Enter.

Uzyskamy efekt jak na rysunku 2.

Rys. 2. Wartość w komórce A1 uruchomiła makro

Po kliknięciu przycisku OK w komórce pojawi się komunikat: Moje makro zostało uruchomione.

Rafał Janus


Tagi: Excel

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Jak zatrzeć ślady po przeglądaniu Internetu?

pobierz

Wzór Polityki Bezpieczeństwa w ochronie danych osobowych

pobierz

Konfiguracja bezpieczeństwa. Windows 10

pobierz

10 sprytnych trików na szybkie obliczenia w Excelu

pobierz

Polecane artykuły

Array ( [cid] => K00043 [lin] => e_261795 [nlid] => 5382 [uid] => j [docId] => 35171 )
Array ( [cid] => K00043 [lin] => e_261795 [nlid] => 5382 [uid] => j [docId] => 35171 )

Array ( [cid] => K00043 [lin] => e_261795 [nlid] => 5382 [uid] => j [docId] => 35171 )