Microsoft Office Excel
uređuje Dragan Grbić

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

Još o Excelu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Kontrola kretanja korisnika po radnom listu

Nivo:  NIVO 4 - klinite za objašnjenje


Pomoću VBA metode možete sprečiti korisnika Excel aplikacije da "divlja" po radnom listu.

Kako ograničiti kretanje korisnika

Veličina radnog lista u Excelu je, u većini slučajeva, prevelika za organizaciju tabele. Ponekad se novopečenim korisnicima dogodi da se "izgube" u tolikom prostoru. Na primer, dovoljno je da korisnik nehotice drži pritisnut taster PAGE DOWN i da se pred njim nađe naizgled prazna tabela. Jedan od intuitivnih načina da sprečite ovakvu pojavu je moguće primeniti ako ste sigurni da će sadržaj uvek ostati u fiksnom prostoru - sakrijte ostatak radnog lista. Na primer, ako je zauzeti prostor u bloku A1:G30, sakrijte redove od 31 do 65536 (ili do 16386 u Excelu 5/95) i kolone od H do IV.

Mala digresija: operacija označavanja redova je odličan primer da je tastatura nekad brža od miša. Umesto da označite prvi red, pa vučete mišem do dna lista, postupite drugačije. Postavite se u neku ćeliju u 31. redu i pritisnite SHIFT+SPACEBAR, čime označavate prvi red. Držeći pritisnut taster SHIFT, pritisnite taster END, a potom strelicu DOWN i svi prazni redovi će biti označeni. Sad sakrijte označeno područje (meni Format/Row/Hide ili meni prečica na zaglavlju redova). Slično postupite i za kolone, s tim što je prečica na tastaturi kojom označavate kolonu CTRL+SPACEBAR.

Vratimo se na prethodnu priču: ovo rešenje je u opštem slučaju dobro, ali može da izazove drugi problem. Naime, ako korisnik pritisne PAGE DOWN u trenutku kad je aktivna ćelija u blizini donje ivice vidljivog dela lista, pred njim će se pojaviti prazan prostor, što može da izazove još veću zabunu nego da vidi prazne ćelije. Očigledno, problem još uvek nije precizno rešen.

Pravo rešenje se krije u tzv. trap procedurama u VBA. To su procedure koje prepoznaju promenu nekog određenog stanja u programu i pri tome aktiviraju korisnički definisan makro. Pravilo je da se trap procedura postavlja u makro Auto_Open, a da se njeno dejstvo eksplicitno poništava u makrou Auto_Close. Za "zarobljavanje" tastera PAGE DOWN upotrebićemo metodu OnKey, kao u prvom primeru u prilogu. Kada postavite ova tri makroa u radnu svesku i nakon njenog otvaranja, PAGE DOWN će pomerati aktivnu ćeliju samo jedan red niže, i to samo do kraja vidljivog dela radnog lista, nakon čega će pritisak na taster biti ignorisan.

Rešenje se može uopštiti, tako da se ovakvo ponašanje tastera PAGE DOWN ograniči samo na radnu svesku u kojoj želimo ograničenje. Drugi primer u prilogu predstavlja takvo, generalno rešenje. Pogledajte na koji način se trap procedure uklapaju u celinu. Upotrebljena je trap procedura OnSheetActivate, koja proverava promenu radnog lista. Ona proziva makro koji ispituje da li se aktivirani list nalazi u matičnoj radnoj svesci, i u zavisnosti od toga postavlja ili uklanja ograničenje na PAGE DOWN. Naravno, može se ići i u veće detalje: sledeći nivo logičke kontrole bi mogao ograničiti ovo dejstvo samo na radne listove u kojima se tačno zahteva takva mogućnost. Uopšte, ako koristite trap procedure, važno je da znate da je njihov domen nakon aktiviranja ceo program, i stoga programiranjem morate predvideti sve moguće negativne posledice.

PRIMER 1

' Podešavanje ponašanja tastera PAGE DOWN

' makro aktivira praćenje promene
' stanja tastera PAGE DOWN
Sub Auto_Open()
Application.OnKey "{PgDn}", "JedanRedDole"
End Sub


' makro poništava trap proceduru
' postavljenu u Auto_Open
Sub Auto_Close()
Application.OnKey "{PgDn}"
End Sub


' makro koji se izvršava kada se
' pritisne taster PAGE DOWN
Sub JedanRedDole()
If Not ActiveCell.Offset(1, 0).EntireRow.Hidden Then _
   ActiveCell.Offset(1, 0).Activate
End Sub

PRIMER 2

' Podešavanje ponašanja tastera PAGE DOWN
' uopšteno rešenje koje ograničava dejstvo
' na jednu radnu svesku
Sub Auto_Open()
Application.OnSheetActivate = "Proveri_PgDn"
End Sub


Sub Auto_Close()
Application.OnSheetActivate = ""
End Sub


Sub Proveri_PgDn()
If ActiveWorkbook Is ThisWorkbook Then
    Application.OnKey "{PgDn}", "JedanRedDole"
Else
    Application.OnKey "{PgDn}"
End If
End Sub


Sub JedanRedDole()
If Not ActiveCell.Offset(1, 0).EntireRow.Hidden Then _
   ActiveCell.Offset(1, 0).Activate
End Sub

 

  (C) 2000-2009 Praktikum na Webu

Mikroračunari 3


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana.