Cześć wszystkim,
Przez krótki czas pracowałem nad załączonym projektem i pomyślałem, że podzielę się nim z grupą. Podsumowując, moja organizacja miała wcześniej na wpół przestarzałą metodę śledzenia płatnego czasu wolnego dla pracowników. W Excelu był wbudowany kalendarz (podobny do arkusza kalendarza w moim załączonym pliku). Administrator zasadniczo wprowadzał dane bezpośrednio do kalendarza, co, jak można sobie wyobrazić, stało się stosunkowo uciążliwym zadaniem w miarę rozwoju organizacji. Zebrałem wiele pomysłów Excel VBA, które miałem z wcześniejszych doświadczeń, aby uzupełnić tę bazę danych. Zrobię tutaj kilka uwag: rozumiem, że na poziomie makroskopowym może to nie być tak wyrafinowane, jak pozyskanie dedykowanego rozwiązania, ale oczywiście nie jest to wtedy możliwe. Ponadto kod jest miejscami trochę nieuporządkowany, ponieważ nie został w pełni sprawdzony i ulepszony. Wreszcie, są pewne rzeczy w niektórych formach, które mogą wydawać się dziwne (pola wyboru, które nigdzie nie prowadzą). Są to prawdopodobnie ofiary, w których przycinam plik w celu usunięcia wszelkich istniejących poufnych danych.
Jak zasugerował [złowrogo] tytuł, w Zeszycie ćwiczeń jest wiele rzeczy. Gdybym miał wybrać jeden element, na którym chciałbym się skupić, sugerowałbym przyjrzenie się pierwszemu elementowi: tworzeniu kontrolek w czasie wykonywania. Jednym z problemów związanych z przejściem na strukturę bazy danych była utrata przeglądów departamentów, które miały być udostępniane kierownictwu. Jasne, poszczególne arkusze departamentów można połączyć, ale to stworzyłoby bardziej powolny i mniej skalowalny model. Ponadto różni menedżerowie żądają różnych typów informacji, więc jest to ledwie „jeden rozmiar dla wszystkich zastosowań”. Userform3 (wiem, kreatywne tytuły!) umożliwia administratorowi skoroszytu eksportowanie określonych informacji do raportów w zależności od potrzeb. Po uruchomieniu formularza użytkownika wypełniane jest pole listy zawierające bieżące działy. Ponadto generowane są przyciski przełączania, które odpowiadają każdemu polu w arkuszu danych, umożliwiając wyeksportowanie tego pola do nowej księgi. Prawdziwa korzyść, ponieważ kolumny są dodawane lub usuwane (na przykład usunąłem nasze numery budżetowe), formularz użytkownika rozszerza się i kurczy oraz dodaje/usuwa przyciski w zależności od potrzeb. Spróbuj. Dodaj kolumnę, a następnie uruchom formularz, aby zobaczyć, że jest teraz uwzględniony w przyciskach przełączania.
Ponadto w tym formularzu znajduje się pole wyboru do drukowania elementów, które spowoduje wydrukowanie raportu, a także wyeksportowanie go do nowego skoroszytu.
Po otwarciu skoroszytu powinien znajdować się pływający pasek narzędzi z opcją Raporty (z tego, co rozumiem, nie zawsze działa to w programie Excel 2007, ale pasek narzędzi można znaleźć na karcie Deweloper na wstążce). Jeśli nadal nie jest widoczny, zawsze możesz nacisnąć Alt + F8, a następnie wybrać makro ShowForm3, aby wyświetlić formularz użytkownika raportów.
Cały kod w skoroszycie zostawiłem dla ciekawskiego obserwatora odblokowany i chętnie odpowiem na wszelkie istotne pytania.