Jedan od novih trendova u controllingu jeste i poznavanje Visual Basic for Aplications (VBA) programskog jezika. VBA može da se koristi u Excel-u i drugim Office aplikacijama radi povećanja efikasnosti rada, a kroz automatizaciju rutinskih, ponavljajućih operacija.
Ivan Veselinović - Budžet na jedan klik, Controlling magazin 06
1. controlling Excel trikovi
64 decembar 2015.
Jedan od novih trendova u controllingu jeste i poznavanje Visual Basic for Aplications (VBA) pro-
gramskog jezika. VBA može da se koristi u Excel-u i drugim Office aplikacijama radi povećanja
efikasnosti rada, a kroz automatizaciju rutinskih, ponavljajućih operacija. Više nije dovoljno napred-
no poznavanje dobrog starog Excela, VLOOKUP funkcija i pivot tabela. Controlleri moraju da us-
avršavaju svoje znanje na polju programiranja, kako bi što više podataka dobili jednim klikom i što
pre dostavili izveštaj menadžeru. U tom cilju, želim da vam pokažem praktičan primer primene VBA
Kako primeniti VBA
u procesu budžetiranja
BUDŽET
NA JEDAN
KLIK!
Forma za planiranje
troškova za mesto troška
CC_01
IVAN VESELINOVIĆ
SENIOR PLANER ANALITIČAR (SPP KAFA)
ATLANTIC GRUPA
2. controlling Excel trikovi
65 decembar 2015.
Sub PopuniBazu()
Dim i, n, kraj, red, kolona As Integer
‘aktiviraj radni list CC_01 (forma za unos troškova)
Sheets(“CC_01”).Activate
‘proveri koliko redova ima forma za unos (prebroj numeričke vrednosti u koloni A)
n = WorksheetFunction.Count(Sheets(“CC_01”).Range(“A:A”))
kraj = n + 5 ‘poslednji red je = n + 5, jer je početak tabele u 6. redu
‘postavi početnu vrednost promenljive red (početak baze)
red = 3
‘postavi početnu vrednost promenljive kolona (početak baze)
kolona = 2
For i = 6 To kraj ‘petlja prolazi kroz sve redove forme za unos
If Cells(i, 1) = 2 Then ‘ako je vrednost u koloni A = 2, tada uzmi podatke
For j = 1 To 12 ‘meseci
‘godina
Sheets(“Baza”).Cells(red, 2) = 2016
‘mesec
Sheets(“Baza”).Cells(red, 3) = j
‘vrsta troška - nivo 2
Sheets(“Baza”).Cells(red, 5) = Cells(i, 2)
‘mesto troška
Sheets(“Baza”).Cells(red, 6) = Range(“C3”)
‘planski period
Sheets(“Baza”).Cells(red, 7) = Range(“C2”)
‘odgovorna osoba
Sheets(“Baza”).Cells(red, 8) = Range(“C1”)
‘iznos (EUR)
Sheets(“Baza”).Cells(red, 9) = Cells(i, 2 + j).Value
red = red + 1 ‘u sledećem krugu, pređi na naredni red
Next j
End If
Next i
Sheets(“Pivot”).Activate
ActiveSheet.PivotTables(“PivotTable1”).PivotCache.Refresh
End Sub
programiranja u jednom od najvažnijih procesa controllinga, a to je proces budžetiranja.
Cilj je kreiranje baze podataka, na osnovu podataka složenih u klasičnu formu za unos, i to na
brz automatski način. Uz pomoć makroa, tj. pisanjem potprograma u VBA, može da se dođe do vrlo
efikasnog rešenja.
U narednoj tabeli dat je primer formulara za unos troškova, koji sadrži podatke o budžetu. U re-
dovima su prikazane vrste troškova, a u kolonama meseci. Ove podatke je potrebno složiti u formu
baze podataka, radi lakše manipulacije podacima i eventualnog unosa u Data Warehouse (DWH).
Ovako poređani podaci mogu vrlo jednostavno da se pretvore u bilo koji format za unos u ERP ili
DWH sisteme.
Sada je potrebno samo da napišem ispravan kod, kako bih dobio bazu podataka koja će mi
omogućiti laku manipulaciju. Kod koji zadajem u okviru DEVELOPER kartice u Excel-u je sledeći:
3. controlling Excel trikovi
66 decembar 2015.
Sređena baza podataka
Primer izveštaja
(pivot tabela)
Ako sam pravilno napisao kod, klikom na dugme „Popuni bazu“ dešava
se magija. U narednih nekoliko sekundi dobijam sređenu bazu podata-
ka. I šta dalje?
Pa naravno, dobri stari pivot. Sada mogu da analiziram podatke onako
kako želim, a isto tako i moj menadžer. Jednostavno, zar ne?
U primeru je data tabela za jedno mesto troška, a uz manju nadograd-
nju, dodavanjem nekoliko linija koda, može da se napravi makro koji će
spojiti više ovakvih tabela u jednu zajedničku bazu podataka, ali to je
već tema za neki naredni broj.
Ivan Veselinović je Senior planer analitičar u kompaniji Atlantic grupa (SPP kafa) od
februara 2015. godine. Prethodno je bio planer analitičar u istoj kompaniji (2011–2015).
Ivana možete kontaktirati na e-mail ivanveselinovic87@gmail.com ili brojem telefona
064 849 6592.