Mikro FV w MS Excel 2010

W Każdej, choćby najmniejszej firmie bardzo przydatne jest oprogramowanie, które odpowiada za fakturowanie.  Tylko czy każda firma musi za takie oprogramowanie zapłacić ? Postaram się udowodnić że w przypadku najmniejszych nie jest to konieczne, na podstawie projektu, który wykonuję na studia.Jeśli chcesz zobaczyć od razu jak działa, zejdź na sam koniec artykułu, jest on tam do pobrania w gotowej, działającej formie. Artykuł ten nie zawiera całej gotowej solucji, a jedynie opisuje kilka wybranych przeze mnie zagadnień.

 Założenia

Mój system FV został napisany przy użyciu Virtual Basic Application w Microsoft Excel 2010 PL. Arkusz będzie pomagał we wprowadzaniu danych przy użyciu UserForm’ów, dzięki temu będzie bardziej przyjazny użytkownikowi.Proste kreatory pomogą mu przy wprowadzaniu danych – podobnie jak w zaawansowanych systemach komputerowych. Pokaże wam teraz jak zamienić  wstążkę na swoją – tak aby użytkownik miał wrażenie odrębności uruchamianego pliku, oraz nie mógł nanieść niepotrzebnych zmian.

 Edycja wstążki

Po pierwsze, modyfikujemy wygląd naszego arkusza tak,aby był zgodny z wcześniej przyjętymi przez nas założeniami. Do tego będziemy potrzebowali programu o nazwie Custom UI Editor:

Pobierz Custom Ui Editor

Najpierw tworzymy gdzieś nowy, pusty arkusz excela. Następnie wypakowujemy,  instalujemy i uruchamiamy program. Później z górnego menu, wybieramy File -> Open,  i wskazujemy wcześniej stworzony plik. Teraz możemy już edytować naszą wstążkę.Na początek proponuję wkleić poniższy kod, za chwilę go omówimy.

Co się tutaj dokładnie stało ? Otóż – w pierwszej linijce za pomocą <customUi xmlns=”> wskazaliśmy,że nasza wstążka ma być zgodna z excelem w wersji 2007, dla podniesienia kompatybilności. Natomiast przypisanie wartości true do <ribbon startFromScratch>, spowodowało, że nasz arkusz wystartuje tylko z utworzonymi przez nas elementami wstążki – te podstawowe nie będą widoczne. Znacznik <tabs>  służy do otworzenia obsługi zakładek. Następnie każdą należy opisać wewnątrz <tab>. Opisujemy tam poszczególne grupy, które są później oddzielone spedatorami. Wewnątrz tych grup tworzymy wreszcie poszczególne przyciski,które będą miały za zadanie uruchamiać poszczególne funkcje.Warto wspomnieć jeszcze o <imageMso>, który odpowiada za ikonkę przy każdym guziku.Stworzona na podstawie powyższego kodu zakładka może wyglądać np tak:

Przykładowa zakładka

 Programujemy !

Czas zatem zabrać się za drugą – bardziej pracochłonną część. Ogólnie aby nie pogubić się w tym co będę chciał wam wytłumaczyć, proponuję abyście pobrali sobie mój gotowy projekt i śledzili wszystko razem z tym poradnikiem.Otwórzmy go teraz . Jak widzisz, zamiast standardowych zakładek, u mnie występują te, które sam stworzyłem zgodnie z procedurą powyżej. Teraz wystarczy wcisnąć kombinację klawiszy Alt+F11, i już, jesteśmy w edytorze VBA. Wybierzmy więc teraz z menu po lewej stronie userform „DodajEdytujTowar”, klikając na niego prawym i wybierając „View Code”. Powinniście zobaczyć taki kod:

Który jest odpowiedzialny za obsługę tego okna:

DodajEdytujTowar userform

i korzysta z tego arkusza:

Przykładowe towary

Dobrze, omówmy sobie teraz, co tu się dzieje. Na samej górze, poleceniem Private Sub TextBox1_AfterUpdate() stworzyłem procedurę, która ma za zadanie uruchomić się dopiero w momencie kiedy pole tekstowe ulegnie zmianie. Dzieje się tak dlatego, że moim założeniem było iż osoba używająca programu będzie używać czytnika kodów kreskowych, a TextBox1, to własnie pole gdzie użytkownik wprowadza kod.  Następnie w kodzie widać zadeklarowaną zmienną sprawdz, jest ona odpowiedzialna za to, aby przeszukać arkusz i  sprawdzić jaki jest numer wiersza komórki w arkuszu o nazwie „Towary” w którym ewentualnie znajduje się szukany przez nas kod kreskowy . Jeśli zostanie on odnaleziony, numer komórki w którym się znajduje zostaje zapisany w zmiennej. Zapis On Error Resume Next, mówi o tym aby w przypadku wystąpienia błędu program działał nadal. Niżej widzimy pętlę, która poleceniem IsNumeric sprawdza czy zawartość pola TextBox1 jest cyfrą i jesli tak – wypełnia pozostałe pola TextBox danymi dotyczącymi towaru, które są zapisane w arkuszu „Towary”.

Następnie, jak widzisz stworzona jest 2 procedura Private Sub CommandButton1_Click(). Jest ona wykonywana dopiero gdy naciśniemy przycisk  „Zakończ” w userform’ie. Zaraz poniżej zadeklarowane są 2 zmienne, z czego zmienna sprawdz nie zmienia się, a zmienna ostw odpowiada za wyświetlenie numeru ostatniego zajętego wiersza. Następnie numer ten zostaje powiększony o 1, tak aby uzyskać numer pierwszego wolnego wiersza w kolumnie A. Zmienna ta jest zadeklarowana, gdyż poniżej jest pętla, która z niej korzysta. Polega to na tym, że jeśli program nie znajdzie naszego kodu kreskowego w programie, to doda nam zupełnie nową pozycję z towarem. Natomiast w przeciwnym wypadku edytowane przez nas dane nadpiszą te wcześniejsze.

 Zagłębiamy się coraz bardziej w kod UserForm’ów

Właściwie jeżeli chodzi o UserForm2 i UserForm3, to nie ma tutaj raczej za wiele do tłumaczenia, kod jest bardzo podobny do tego, który rozważaliśmy w przypadku wyżej. Dlatego teraz postaram się omówić przypadek UserForm1. Kod wygląda tak:

A odpowiedzialne okna, tak:

Opiszę wam tutaj obsługę  Private Sub UserForm_Initialize(),gdyż wydaje mi się ciekawa. Otóż zawarty w niej kod powoduje, że po każdym uruchomieniu kreatora faktury, excel automatycznie kasuje wszystkie wiersze znajdujące się dalej niż 19.  Dzięki temu, za każdym uruchomieniem mamy czysty arkusz.

 Tworzenie przeźroczystego UserForm’a

Na koniec zostawiłem sobie kod przeźroczystego formularza. W moim projekcie uruchamia się on jak tło, zaraz po uruchomieniu aplikacji za co odpowiada kod:

Umieszczony w obiekcie Excela o nazwie „Ten_skoroszyt”. Natomiast sam kod działania, jest wpisany w formularzu o nazwie „przeźroczysty” i wygląda mniej więcej tak:

Samo jego działanie jest dość mocno skomplikowane, i wykorzystywane są do tego biblioteki systemowe Windows. Formularz poza kodem musi być jeszcze ustawiony w dość specyficzny sposób, tak aby uzyskać pożądany efekt.

Podsumowanie

Samo działanie aplikacji od strony programistycznej może nie być od razu zrozumiałe. Jednak gdy popatrzysz na to przez dłuższą chwilę i przemyślisz – powinieneś zrozumieć o co dokładnie w nim chodzi. Poniżej, załączam pliki źródłowe do pobrania. To by właściwie było na tyle. Do usłyszenia później.

Pliki źródłowe

Sprawdź też

Xcode 9 and cordova on SAP Hat issue

Hi Guys, Last time Apple make some changes in their policy so you will probably …