Najpierw napisałeś
Cytat: po wpisaniu numeru tygodnia
, później
Cytat: Numer tygodnia będzie kopiowany z innego arkusza
, więc zrozumiałem, że będzie następować zmiana w komórce A3, dlatego zaproponowałem użycie zdarzenia Change do wywołania makra.
Teraz okazuje się, że w A3 jest formuła, więc zdarzenie Change w tej komórce nie występuje.
Trzeba podawać precyzyjne opisy, bo potem niepotrzebnie wydłuża się czas na uzyskanie zadowalającej odpowiedzi.
W tym przypadku wg przykładu zmiana (Change) następuje w komórce C6 w Arkuszu 1. Wobec tego jedno z możliwych rozwiązań, to przesunięcie procedury obsługi zdarzenia do tamtego arkusza i sprawdzanie komórki C6 zamiast A3.
Ten wariant jest w załączniku pod nazwą "Filtr_tygodnie2".
Inny wariant rozwiązania może wykorzystywać zdarzenie Calculate, czyli przeliczenie arkuszy. Wartość komórki A3 z arkusza Dane zapamiętujemy w zmiennej statycznej KomA3 i jeśli po przeliczeniu skoroszytu stwierdzimy, że wartość ta uległa zmianie wykonujemy akcję ukrywania kolumn i wierszy jak poprzednio (wywołując przygotowany wcześniej kod). Wykorzystałem obsługę zdarzenia Calculate na poziomie skoroszytu, uwzględniając potencjalnie możliwe odwołania do różnych arkuszy.
Ten wariant jest w załączniku pod nazwą "Filtr_tygodnie3". Proszę zwrócić uwagę na zmianę w zdarzeniu Change z Private na Public.