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
 

Automatsko bojenje formula

Nivo:  NIVO 2 - klinite za objašnjenje


Šta nema u izlogu, ima u radnji: kada Office program nema neku funkciju, onda lepo zasučemo rukave, pa je napravimo u VBA...

Jedan kolega je svojevremeno na SezamuPro zatražio način da unapred pripremi područje radnog lista u Excelu tako da ćelije sa formulama budu jasno izražene u odnosu na konstante. Naravno, pokušao je ono što bi pokušao i svako od nas: pozvao je u pomoć alatku Conditional Formatting u nameri da unapred dodeli neko svojstvo takvim ćelijama. Ali, ova alatka ne može pomoći u takvim prilikama: uslovno formatiranje se može primeniti samo nad konstantama određene vrednosti ili na tačan sadržaj formule.

Setio sam se da VBA može da prepozna da se u ćeliji nalazi formula (svojstvo HasFormula) i brže-bolje sam kolegi poslao sledeći makro:

Sub JesteFormula()

Set opseg = ActiveSheet.UsedRange.Cells

For Each celija In opseg
   If celija.HasFormula Then
      With celija.Font
         .ColorIndex = 3 'crveni font
         .Bold = True ' boldovano
      End With
   End If
Next

End Sub

Makro je pomogao: njegovim aktiviranjem, sve ćelije koje sadrže formule će biti ispisane crveno i boldovano. Ali, nisam bio zadovoljan ovim rešenjem, jer nije automatizovano: sledeća uneta formula neće biti označena na isti način sve dok se makro ne pozove ponovo. Nešto kasnije sam se vratio problemu, misleći da će biti najbolje povezati ovu VBA proceduru sa nekim događajem koji će se aktivirati pri otvaranju radne sveske. Dok sam radio, pogrešio sam u sintaksi; tek kad sam otvorio Help, shvatio sam da sam na krivom tragu: Excel je već obezbedio prostor za ovakve potrebe. Umesto da se ubacuje novi modul u VBE, u prozoru VBAProject treba označiti objekat Sheet1 (ili kako se već zove radni list o kome je reč) i u padajućim listama pronaći rezervisanu proceduru Worksheet_Change. Konačno, gotov makro je izgledao ovako:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.HasFormula Then
   With Target.Font
      .Bold = True
      .ColorIndex = 3
   End With
End If

End Sub

Ništa lakše! Sva automatika je konačno obezbeđena: nakon bilo kakve promene sadržaja na radnom listu, program će prepoznati novu formulu i promeniti boju sadržaja ćelije.

 

  (C) 2000-2009 Praktikum na Webu

PC 38


 
 

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.