|
Microsoft Office Excel |
|
|
Restrikcija unosa tekstaNivo:
Excel je, naravno, prevashodno krckalica brojeva, pa su alatke za kontrolisani unos numeričkih vrednosti dobro razvijene. Međutim, šta raditi kada treba ograničiti unos tekstualnog sadržaja? Alatka za validaciju unosa tada nije baš od pomoći... Pre nekog vremena, na SezamProu je postavljeno pitanje o mogućnostima restrikcije unosa na radni list u Excelu. Opšte pitanje uvek završava i opštim odgovorom: postoji bar nekoliko mehanizama kontrole unosa sadržaja, što zavisi od organizacije podataka, mogućnosti standardnih alata i vaših posebnih potreba. Sistem Data Validation je u velikoj većini slučajeva sasvim dovoljan mehanizam zaštite pri unosu numeričkih sadržaja; tu se mogu definisati i razne opcije ponašanja pri uočenoj grešci kriterijuma. Međutim, ta alatka iskazuje slabost kada je reč o unosu tekstualnih sadržaja: jedina predviđena kontrola unosa je dužina teksta. Moguće je i postavljanje formule u opciji Custom, ali ponekad nije lako napraviti formulu koja će ograditi skup dozvoljenih ili nepoželjnih unosa. U konkretnom slučaju jednog kolege, pribegli smo sasvim uobičajenom rešenju, kojeg se neki početnici pomalo plaše, ali bez razloga - izvedena je procedura događaja na radnom listu koja proverava upravo uneti tekst, a potom reaguje na nepoželjni unos. Kasnije sam malo razvio taj postupak na proizvoljni opseg "prostora zabrane" i na niz "zabranjenih" stringova. Sledeći makro unesite u VBE u modul radnog lista (dupli klik na željeni radni list u oknu Project).
Izvedeni scenario je sledeći: klauzula Set Prostor okuplja opsege ćelija u kojima važi zabrana (obojite te ćelije drugom bojom, da vam bude lakše). Niz konstanti zabrana sadrži proizvoljni broj stringova čiji unos želite da sprečite. U primeru sam zamislio da unosite prva tri slova imena dana, a ako je to jedan od pet radnih dana, to će se smatrati pogrešnim. Taj sadržaj je napisan velikim slovima kako bi se u pitalici eliminisale razlike u načinu unosa na radni list (funkcija UCase rešava pitanje drugog člana klauzule If). Vama preostaje samo da definišete elemente zabrane po svom nahođenju, a procedura događaja će odsad brinuti gde da šta unesete. Naravno, ovo jezgro se može razviti tako da se istovremeno ili posebno ispitaju i dozvole pri unosu teksta, pa dobijamo tek neznatno drugačiji kod, recimo poput ovog: Private Sub Worksheet_Change(ByVal Target As Range)
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |