tworzenie prostych formularzy w excelu

background image

drukuj

anuluj

Gdy forma jest tre

ś

ci

ą

2001-09-6

Grzegorz D

ą

browski

Tworzenie prostych formularzy w Excelu

Wi

ę

kszo

ść

u

ż

ytkowników pakietu biurowego Microsoftu nie stara si

ę

nawet korzysta

ć

z mo

ż

liwo

ś

ci oferowanych

przez formularze i VBA. Tymczasem nie jest to wcale takie trudne, a cz

ę

sto ułatwia

ż

ycie przeci

ę

tnego zjadacza

cyfrowego chleba.

Wyobra

ź

my sobie nast

ę

puj

ą

c

ą

sytuacj

ę

: na skutek skrajnie niekorzystnego systemu ubezpiecze

ń

zdrowotnych jeste

ś

my zmuszeni do samodzielnego rozliczania si

ę

z pobliskim urz

ę

dem skarbowym. Nasza

rado

ść

z szansy usamodzielnienia si

ę

i perspektyw na

ś

wietlan

ą

przyszło

ść

nie trwa jednak długo.

U

ś

wiadamiamy sobie bowiem, i

ż

comiesi

ę

czne wystawianie faktur wi

ąż

e si

ę

co najmniej z jednym popołudniem

w miesi

ą

cu, sp

ę

dzonym nad bloczkiem formularzy i kalkulatorem. Owocuje to desperack

ą

ide

ą

zaprz

ę

gni

ę

cia do

ż

mudnego procesu fakturowania zakurzonego peceta młodszego brata. Poniewa

ż

nie chcemy niepotrzebnie

mno

ż

y

ć

kosztów, postanawiamy wykorzysta

ć

do pracy wysłu

ż

ony pakiet biurowy, mog

ą

cy w wielu przypadkach

zast

ą

pi

ć

wyspecjalizowane narz

ę

dzia ksi

ę

gowe.

Jest to mo

ż

liwe dzi

ę

ki gotowym komponentom, umo

ż

liwiaj

ą

cym budowanie formularzy. Dodatkowym atutem

w przypadku MS Office (i innych pakietów tego typu) jest mo

ż

liwo

ść

skojarzenia takich elementów z fragmentami

programów napisanych w odpowiednim j

ę

zyku programowania. Microsoft zaadaptował do tego celu Visual

Basica, tworz

ą

c jego odmian

ę

o nazwie VBA (Visual Basic for Applications).

Zalet VBA mo

ż

na wyliczy

ć

co najmniej kilka. Najwa

ż

niejsze z nich to:

- prosta składnia j

ę

zyka;

- obiektowo

ść

VB, umo

ż

liwiaj

ą

ca współprac

ę

makr z dokumentami Office'a;

- mo

ż

liwo

ść

wykorzystania podczas pracy do

ś

wiadcze

ń

wyniesionych z programowania w j

ę

zyku Visual

Basic lub VBScript.

--

Info
Visual Basic w Excelu

http://vba.profit.pl

Na płycie CD w katalogu Porady | Formularze w Excelu znajdują się pliki XLS omawiane w artykule.

Faktura od podstaw

Na ka

ż

dym rachunku VAT musz

ą

znale

źć

si

ę

okre

ś

lone informacje. S

ą

to przede wszystkim dane sprzedawcy i

nabywcy wyszczególnionych towarów i usług, data i miejsce wystawienia faktury oraz kwota transakcji. Szablon

prostej faktury powinni

ś

my wykona

ć

w Excelu w ci

ą

gu kilku minut - jako wzorca mo

ż

emy u

ż

y

ć

rachunku, który

dostali

ś

my w dowolnym sklepie. Przykładowy arkusz, stanowi

ą

cy podstaw

ę

do dalszej pracy, mo

ż

na znale

źć

na

płycie CD doł

ą

czonej do bie

żą

cego numeru CHIP-a (patrz: ramka Info), w pliku Faktura1.xls.

Rozwijamy skrzydła

Tworzenie faktury rozpoczniemy od jej najprostszych elementów. MS Office udost

ę

pnia gotowe komponenty do

budowy formularzy, tzw. formanty. Jednym z nich jest lista rozwijalna, pozwalaj

ą

ca na wybieranie spo

ś

ród

Page 1 of 5

Tworzenie prostych formularzy w Excelu

2008-10-27

http://www.chip.pl/archiwum/printversion/printversion_12903.html

background image

wcze

ś

niej okre

ś

lonych warto

ś

ci. U

ż

yjemy jej m.in. do zaznaczania na fakturze u

ż

ywanych stawek VAT i

jednostek.

Najpierw musimy wy

ś

wietli

ć

na ekranie stosown

ą

palet

ę

. Słu

ż

y do tego polecenie Widok | Paski narz

ę

dzi |

Formularze. Z paska wybieramy formant Pole kombi i "rysujemy" pole w komórce okre

ś

laj

ą

cej jednostk

ę

sprzedawanego produktu (rys. u góry s

ą

siedniej strony). Zawarto

ść

listy mo

ż

emy okre

ś

li

ć

, wpisuj

ą

c jej kolejne

pozycje w s

ą

siaduj

ą

cych ze sob

ą

komórkach arkusza i wskazuj

ą

c je Excelowi. Umówmy si

ę

,

ż

e na dodatkowe,

nie drukowane dane przeznaczymy osobny arkusz skoroszytu. W przykładowym pliku arkusz ten nosi nazw

ę

pomocniczy. Klikamy nasz

ą

list

ę

prawym przyciskiem myszy, wybieramy z menu podr

ę

cznego opcj

ę

Formatuj

for- mant i zaznaczamy kart

ę

Formant. Naciskamy teraz przycisk obok pola Zakres wej

ś

ciowy, przechodzimy do

arkusza pomocniczego i zaznaczamy komórki z pozycjami listy (w przykładowym skoroszycie b

ę

dzie to zakres

komórek A2-A4 - patrz rys. obok). Po naci

ś

ni

ę

ciu klawisza [Enter] odwołanie do nich zostanie wpisane do

wspomnianego pola Zakres wej

ś

ciowy. Nast

ę

pnie klikamy przycisk OK. Na naszej li

ś

cie pojawi

ą

si

ę

pozycje "---",

"szt.", "kg". Mo

ż

emy teraz skopiowa

ć

pole listy (poleceniami Kopiuj i Wklej z menu podr

ę

cznego) do pozostałych

komórek kolumny okre

ś

laj

ą

cej jednostki towarów.

Lista li

ś

cie nierówna

W MS Office spotkamy si

ę

z dwoma rodzajami komponentów, u

ż

ywanych do tworzenia formularzy. Do pierwszej

grupy nale

ż

y lista u

ż

yta przed momentem. Istniej

ą

jednak bardziej zaawansowane formanty (tzw. kontrolki

ActiveX), których zastosowanie wyja

ś

ni

ę

w dalszej cz

ęś

ci tekstu.

Wy

ś

wietlamy na ekranie pasek narz

ę

dzi Przybornik formantów. Na pozór jest on bardzo podobny do palety

Formularze, zawiera jednak formanty ActiveX. Umie

ść

my Pole kombi z tego paska w pierwszej od góry komórce

kolumny Stawka VAT naszego arkusza. Zauwa

ż

my,

ż

e operacji tej towarzyszy pojawienie si

ę

dodatkowego

paska, na którym umieszczony jest tylko jeden przycisk. Pozwala on na wł

ą

czanie i wył

ą

czanie tzw. trybu

projektowania formularza. Po wył

ą

czeniu tego przycisku b

ę

dziemy mogli jedynie wprowadza

ć

dane do arkusza,

bez mo

ż

liwo

ś

ci modyfikacji wła

ś

ciwo

ś

ci formantów. Identyczny przycisk znajdziemy na pasku Przybornik

formantów.

Gdy wybierzemy z menu podr

ę

cznego nowego pola kombi polecenie Formatuj formant, przekonamy si

ę

,

ż

e

w oknie o tej samej nazwie brakuje karty Formant. Jej bardzo rozbudowany odpowiednik stanowi okienko

Properties (rys. u góry strony), wy

ś

wietlane po u

ż

yciu opcji Wła

ś

ciwo

ś

ci z menu kontekstowego formantu. Jest

ono znane wszystkim programistom korzystaj

ą

cych z narz

ę

dzi RAD (Visual Basic, Delphi itd.). Pozwala na

ś

cisłe

okre

ś

lenie nie tylko wygl

ą

du, ale i zachowania komponentu w ró

ż

nych sytuacjach. Jedn

ą

z wa

ż

niejszych dla nas

cech, okre

ś

lanych za pomoc

ą

okna Properties, jest nazwa kontrolki. Dzi

ę

ki niej b

ę

dziemy mogli si

ę

odwoła

ć

np.

do zawarto

ś

ci listy, u

ż

ywaj

ą

c kodu VBA.

Własny interfejs: tworzenie formularzy w aplikacjach
MS Office nie jest trudne, a może zaoszczędzić nam

nieco czasu.

Zaczynamy kodowa

ć

Nazwa komponentu przechowywana jest w polu (Name) - ujrzymy je u góry listy zawartej w oknie Properties. Je

ś

li

skopiujemy utworzony przed chwil

ą

komponent, zauwa

ż

ymy,

ż

e Excel automatycznie zmienił nazw

ę

nowej kontrolki.

Dzieje si

ę

tak, gdy

ż

nazwa komponentu musi by

ć

unikatowa - w obr

ę

bie skoroszytu nie mo

ż

emy umie

ś

ci

ć

dwóch

obiektów o tych samych nazwach.

Page 2 of 5

Tworzenie prostych formularzy w Excelu

2008-10-27

http://www.chip.pl/archiwum/printversion/printversion_12903.html

background image

Utwórzmy zatem odpowiedni

ą

liczb

ę

pól kombi (w naszym przykładowym arkuszu b

ę

dzie to dziesi

ęć

obiektów o

nazwach od ComboBox1 do ComboBox10). Posłu

żą

one do wyboru stawki VAT dla danego produtku. Mo

ż

emy

skorzysta

ć

z pliku Faktura2.xls z CHIP- -CD. Umieszczeniem na listach odpowiednich warto

ś

ci zajmie si

ę

program,

który za chwil

ę

napiszemy.

Przechodzimy do edytora VBA (Narz

ę

dzia | Makro | Edytor Visual Basic lub skrót [Alt]+[F11]). W oknie

projektu, standardowo umieszczonym po lewej stronie ekranu, klikamy dwa razy gał

ąź

VBAProjectMicrosoft Excel

Objects ThisWorkbook. Spowoduje to otwarcie okienka edycyjnego. Jest ono wyposa

ż

one w dwie listy rozwijalne (w

miejscu menu). Wybieramy z lewej pozycj

ę

Workbook, z prawej - Open. Dzi

ę

ki temu b

ę

dziemy mogli utworzy

ć

procedur

ę

o nazwie Workbook_open, wykonywan

ą

automatycznie podczas otwierania skoroszytu. Dzi

ę

ki niej dodamy

kolejne pozycje do list ComboBox.

Aby wstawi

ć

ła

ń

cuch znakowy do listy, musimy wskaza

ć

pełn

ą

nazw

ę

obiektu i odpowiedniej, skojarzonej z nim

procedury (tzw. metody). Mo

ż

emy to zrobi

ć

np. tak:

Worksheets("faktura"). _

ComboBox1.AddItem "22%"

Instrukcja taka oznacza to,

ż

e w arkuszu o nazwie faktura znajduje si

ę

obiekt ComboBox1 (pierwszy z

utworzonych przez nas komponentów typu ActiveX). Obiekt typu ComboBox oferuje z kolei metod

ę

AddItem,

dodaj

ą

c

ą

do listy dowolny tekst (w naszym przypadku "22%").

Uwaga: znak podkre

ś

lenia "_" oznacza w j

ę

zyku Visual Basic przeniesienie wiersza. W podawanych w

niniejszym artykule listingach mo

ż

na go usuwa

ć

, wpisuj

ą

c w zamian odpowiednie polecenia w jednej linii.

W podobny sposób musimy doda

ć

pozostałe pozycje odnosz

ą

ce si

ę

do podatku VAT, a wi

ę

c "7%", "0%" i

"zwolniony". Operacj

ę

powinni

ś

my powtórzy

ć

dla wszystkich list. Daje to co najmniej 40 linii kodu. Postaramy si

ę

nieco zredukowa

ć

rozmiar programu.

Po pierwsze, zastosujemy powtórzon

ą

10 razy (dla ka

ż

dego formantu ComboBox) p

ę

tl

ę

For... Next. Pozwala

ona na cykliczne wykonywanie umieszczonych wewn

ą

trz niej instrukcji. Poza tym nieco inaczej ni

ż

we

wcze

ś

niejszym przykładzie "dobierzemy si

ę

" do naszych list rozwijalnych. Zrobimy to mianowicie, korzystaj

ą

c z

obiektu OLEObjects, reprezentuj

ą

cego zbiór wszystkich formantów ActiveX umieszczonych w danym arkuszu. Aby

uzyska

ć

dost

ę

p np. do kontrolki ComboBox5, wystarczy u

ż

y

ć

polecenia OLEObjects("ComboBox5"). Nasz program

mo

ż

e wygl

ą

da

ć

tak, jak na poni

ż

szym wydruku:

Private Sub Workbook_Open()

Dim i

With Worksheets("faktura")

For i = 1 To.OLEObjects.Count

.OLEObjects("ComboBox" + _

CStr(i)).Object.AddItem "22%"

.OLEObjects("ComboBox" + _

Zaczynamy programować: widok okna Properties,
ułatwiającego kontrolę nad formantami, ucieszy
zapewne każdego programistę.

Page 3 of 5

Tworzenie prostych formularzy w Excelu

2008-10-27

http://www.chip.pl/archiwum/printversion/printversion_12903.html

background image

CStr(i)).Object.AddItem '7%'

.OLEObjects("ComboBox" + _

CStr(i)).Object.AddItem "0%"

.OLEObjects("ComboBox" + _

CStr(i)).Object.AddItem "zw."

Next i

End With

End Sub

Po uzupełnieniu tre

ś

ci procedury mo

ż

emy zapisa

ć

i zamkn

ąć

nasz arkusz (na tym etapie mo

ż

na skorzysta

ć

z

pliku formularz3.xls z płyty CD). Po ponownym otwarciu dokumentu wł

ą

czamy obsług

ę

makropolece

ń

klikni

ę

ciem

przycisku Wł

ą

cz makra w wy

ś

wietlonym przez Excel oknie dialogowym. Przekonamy si

ę

,

ż

e wszystkie listy

rozwijalne w kolumnie arkusza o nazwie Stawka VAT zawieraj

ą

odpowiednie wpisy.

Sumowanie i zliczanie

Zajmiemy si

ę

teraz obliczaniem cen, stawek VAT i wyliczeniem warto

ś

ci, na jak

ą

b

ę

dzie opiewa

ć

faktura. Na

pocz

ą

tek wró

ć

my do trybu projektu formularza (przycisk Tryb projektowania na pasku Przybornik formantów).

Liczby w kolumnie Warto

ść

netto faktury wyliczymy, posługuj

ą

c si

ę

prost

ą

formuł

ą

. W naszym przykładowym

arkuszu wpisujemy do komórki G17 formuł

ę

: =E17*F17 i kopiujemy j

ą

do pozostałych komórek kolumny Warto

ść

netto.

Nieco inaczej wyliczymy warto

ś

ci w kolumnie Podatek. B

ę

d

ą

one zale

ż

ały od tego, co wybierzemy z list

rozwijalnych w szpalcie Stawka VAT. Warto

ś

ci podatku mo

ż

emy wyliczy

ć

na kilka sposobów. Jeden z łatwiejszych

to utworzenie procedury obsługi zdarzenia Change ka

ż

dej z list. Brzmi to nieco gro

ź

nie, postaram si

ę

jednak

wyja

ś

ni

ć

to w miar

ę

przyst

ę

pnie.

Ka

ż

dy komponent typu ActiveX generuje zestaw tzw. zdarze

ń

. Maj

ą

one miejsce, gdy np. wybierzemy co

ś

z

listy, wci

ś

niemy lub pu

ś

cimy przycisk myszy w obr

ę

bie kontrolki. Mo

ż

emy obsłu

ż

y

ć

ka

ż

d

ą

z takich typowych sytuacji

w wybrany przez siebie sposób. Robimy to, tworz

ą

c procedur

ę

o odpowiedniej nazwie. Podprogram ten zostanie

wykonany w momencie, gdy wyst

ą

pi dane zdarzenie.

W naszym przypadku chodzi o proste zdarzenie Change, generowane w momencie wyboru pozycji z listy

wybieralnej lub wpisania do niej tekstu.

Poniewa

ż

nie zawsze wiemy, czy u

ż

ytkownik arkusza najpierw wpisze cen

ę

produktu czy te

ż

wybierze stawk

ę

VAT, nie mo

ż

emy wyliczy

ć

ceny brutto w momencie wyboru pozycji z listy rozwijalnej. Zamiast tego zapiszemy

informacj

ę

o wybranej z listy warto

ś

ci w ukrytej komórce arkusza. Aby utworzy

ć

stosown

ą

procedur

ę

, klikamy

dwukrotnie (b

ę

d

ą

c w trybie projektu) pierwsz

ą

z naszych list. Spowoduje to automatyczne przej

ś

cie do edytora VBA

i wygenerowanie nagłówków procedury ComboBox1_Change. Wpisujemy w niej tekst:

Select Case ComboBox1.Value

Case "22%"

Gotowy formularz faktury możemy wzbogacić
dowolnymi elementami. Dobrym pomysłem będzie
np. dodanie list z oferowanym asortymentem.

Page 4 of 5

Tworzenie prostych formularzy w Excelu

2008-10-27

http://www.chip.pl/archiwum/printversion/printversion_12903.html

background image

Copyright © 2001-2007

Range("K17").Value = 0.22

Case "7%"

Range("K17").Value = 0.07

Case "%", "zw."

Range("K17").Value = 0

End Select

Opis instrukcji Case mo

ż

na znale

źć

w Pomocy edytora VBA. Mówi

ą

c w skrócie, pozwala ona na podj

ę

cie

okre

ś

lonych działa

ń

w zale

ż

no

ś

ci od warto

ś

ci parametru (w naszym przypadku zawarto

ś

ci listy). Poszczególne

fragmenty procedury skutkuj

ą

wpisaniem odpowiedniej stawki podatku do pomocniczej komórki K17 (Range

("K17"). Value =...). Podobn

ą

operacj

ę

wykonujemy w odniesieniu do pozostałych list ComboBox. Kolejn

ą

czynno

ś

ci

ą

jest umieszczenie w kolumnie Podatek formuł typu: =G17*K17. Arkusz po tych zmianach mo

ż

na

skopiowa

ć

z płyty CD (faktura4.xls).

Co jeszcze mo

ż

na zrobi

ć

?

Nast

ę

pnie kroki tworzenia arkusza s

ą

ju

ż

banalne - musimy wyliczy

ć

warto

ś

ci brutto poszczególnych pozycji i

całkowit

ą

kwot

ę

faktury. Jedynie od naszej inwencji zale

żą

jednak ewentualne usprawnienia w funkcjonowaniu

skoroszytu. Warto pomy

ś

le

ć

np. o wyborze towaru z listy i automatycznym wstawianiu cen czy te

ż

o

generowaniu osobnego, pomocniczego arkusza do wydruku. Wszystko to mo

ż

na zrobi

ć

, opieraj

ą

c si

ę

na

wskazówkach zawartych w niniejszym artykule oraz wykorzystuj

ą

c pomoc Excela i edytora VBA. Cz

ęść

dodatkowych własno

ś

ci zaimplementowano w przykładowym arkuszu faktura5.xls. n

drukuj

anuluj

Page 5 of 5

Tworzenie prostych formularzy w Excelu

2008-10-27

http://www.chip.pl/archiwum/printversion/printversion_12903.html


Wyszukiwarka

Podobne podstrony:
Formularz w Excelu z formatowaniem warunkowym
Ochrona formuł w Excelu
Tworzenie i modyfikacja formularza
Tworzenie złożonych formuł warunkowych
Tworzenie złożonych formuł warunkowych, Dokumenty(1)
10 Tworzenie poprawnych formuł1
Formaty niestandardowe w Excelu przydatne w budowaniu formularzy
HTTPD, J FORMS, Tworzenie formularzy HTML, mechanizm CGI
Tworzenie formularzy - Access, ściągi
Wykorzystanie Formularzy w tworzeniu arkuszy dynamicznych, Różne Dokumenty, MARKETING EKONOMIA ZARZĄ
Lekcja 5 Tworzenie formuł
Przygotowanie formularza z formantami w Excelu
Tworzenie formularzy do wypełniania lub drukowania przez użytkowników w programie Word
Cw3 Tworzenie formularzy
#9 OpenOffice Math – tworzenie formuł
Tworzenie formuł

więcej podobnych podstron