ivan veselinović - budžet na jedan klik, controlling magazin 06
TRANSCRIPT
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
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:
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 [email protected] ili brojem telefona 064 849 6592.