Microsoft Office Excel
uređuje Dragan Grbić

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Excelu
 


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

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 
Suština pasijansa
Suština pasijansa
 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 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-2011 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-2011; Valinor Design; sva prava pridržana.