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
 

Pretraga bez petlje

Nivo:  NIVO 3 - klinite za objašnjenje


Brojne alatke Excela obezbeđuju brz i efikasan rad. Ali, činjenica je da neke njihove osobine ponekad ne odgovaraju vašoj tačnoj nameri. Preostaje da trpite - ili da nešto preduzmete. Na primeru vam pokazujemo kako da rešite jedan nedostatak u ponašanju operacije pretraživanja na radnom listu.

Da li ste primetili jednu nezgodnu osobinu Excela u toku pretraživanja stringova alatkom Find? Kada dođe do kraja sadržaja na radnom listu, mehanizam krene u pretraživanje ispočetka. Ako se nalazite u nekoj povećoj listi, moglo bi se desiti da uopšte ne primetite da vas program "šeta" kroz drugi krug stringova koje vam je već pokazao. Upravo ovo se desilo glavnom uredniku časopisa PC, koji me je isprovocirao da potražim neko rešenje ovog problema, na koji sam se i sam nasukao nekoliko puta.

Rezultat "provokacije" možete videti u sledećem VBA listingu i isprobati u praksi: reč je o makrou koji preuzima na sebe proceduru prostog pretraživanja. Uobičajeni dijalog koji dobijate prečicom CTRL+F ovim ne gubi svoju funkciju, pa ovo rešenje možete koristiti kao alternativu.

Sub Trazi()

Static pojam
Static prvi As Integer
Static prvaadresa
Static c

On Error Resume Next

Application.ScreenUpdating = False

If pojam = "" Then
    pojam = InputBox("Unesi pojam za pretraživanje")
    If pojam = "" Then Exit Sub
End If

If prvi = 0 Then
    Set c = ActiveSheet.Cells.Find(pojam, LookIn:=xlValues)
Else
    Set c = ActiveSheet.Cells.FindNext(c)
End If

poslednjaadresa = ActiveCell.Address
c.Activate

If prvi = 0 Then prvaadresa = ActiveCell.Address

If c.Address = prvaadresa And prvi = 1 Then
    MsgBox "Kraj pretraživanja"
    Range(poslednjaadresa).Activate
    pojam = ""
    prvi = 0
Else
    prvi = 1
End If

Application.ScreenUpdating = True

End Sub

Ako ste skloni analizi VBA koda, ovde ćete uočiti par "prljavih" tehnika. Tako je ispalo iz dva razloga: prvo, ovo je najkraći kod koji daje valjan rezultat, a drugo... pa, nije trebalo mnogo da se napiše i da proradi.

Da biste angažovali proceduru Trazi, postoji nekoliko načina. Lokalna varijanta je da uvek pozivate makro iz spiska makroa koji ćete najbrže dobiti prečicom ALT+F8. Kako to baš i nije udobno, možete nacrtati taster na radnom listu: otvorite toolbar Forms, odaberite element Button, pa nakon crtanja odaberite ime makroa sa spiska koji će se pojaviti. Meni je, pak, najdraža tastatura: ako obezbedite i makro Auto_Open, nakon otvaranja radne sveske aktiviraće se prečica SHIFT+CTRL+F, koja će aktivirati alternativni "sistem" za pretraživanje.

Sub Auto_Open()
Application.OnKey "+^F", "Trazi"
End Sub

Scenario primene alternativne pretrage je krajnje prost: pri prvom pretraživanju, pojaviće se polje za unos stringa za kojim ste u potrazi. Ako rezultat postoji, aktiviraće se prvo polje koje ga sadrži. Svako sledeće pokretanje pretrage će odmah preći na sledeću instancu nađenog stringa i to će se ponavljati svakom komandom do kraja radnog lista. Poslednji put, kada više ne bude rezultata, dobićete poruku o tome; istu poruku ćete dobiti i ako string uopšte ne bude pronađen. Posle toga, indikator pretraživanja se resetuje, pa će opet biti iniciran dijalog. Ovde nije dato rešenje za prekid pretraživanja i prelazak na novo. Makro za resetovanje pretrage sadrži samo jedan red: napišite ga sami!

 

  (C) 2000-2009 Praktikum na Webu

PC 93


 
 

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.