KOJE NOSIŠ "TIKE"? DARKO VLAJKOVIĆ, KONSULTANT MENADŽMENT CENTAR BEOGRAD

Svaka veća kompanija danas koristi neki od ERP-ova (SAP, Microsoft, Upis, M&I...) Međutim, koliko god oni bili napredni, Excel je i dalje alat broj jedan za analiziranje i izveštavanje. Prema istraživanju koje je sproveo Menadžment Centar Beograd, čak 92% controllera koristi Excel za izveštavanje i budžetiranje. Problem koji se javlja u praksi je u tome koliko god da znamo sve moguće prečice i napredne funkcije, neke operacije su repetativne i izuzetno dosadne. Takve operacije nam oduzimaju puno vremena i one nemaju dodatnu vrednost, ponavljaju se iz meseca u mesec i onemogućavaju nas da se posvetimo analizi podataka koja bi nam omogućila donošenje boljih i kvalitetnijih odluka.

[caption id="attachment_17217" align="aligncenter" width="546"]Darko Vlaković - Copy Darko Vlajković, Konsultant, Menadžment Centar Beograd[/caption]

Postavlja se pitanje kako automatizovati takve operacije? Dobar primer toga sam našao u jednoj trgovinskoj kompaniji koja je imala problem sa sabiranjem količina. Oni su prebacivali podatke iz ERP-a u Excel podatke o robi. U pitanju su bile patike. U podacima, između ostalog, su bile i oznake za veličine (SIZE) i količine (QUANTITY). Ovde se javlja problem što ne postoji zbir količina svake grupe patika. Da bi controller izračunao količinu za svaku grupu patika morao je kod svakog međuzbira u koloni „F“ ručno da unosi formulu za zbir =SUM(....) Na primer, u ćeliji F2 treba da napiše formulu =SUM(F3:F8), u ćeliji F9 treba da se napiše formulu =SUM(F10:F13) i tako dalje. Razlog za ručno unošenje je taj što je broj redova ispod svakog međuzbira različit i oblast za sabiranje se menja. S obzirom da ova tabela ima preko 10.000 redova, ovo controlleru oduzima skoro jedan dan posla – a takvih situacija ima 5 puta mesečno. Ukratko, 5 dana potrošenog vremena!

Screen Shot 2016-03-02 at 18.16.19 copy

Rešenje koje sam pronašao je VBA programiranje! VBA u Excelu upravo služi da se automatizuju ovakve operacije koje oduzimaju puno vremena i koje se relativno redovno ponavljaju. Sada će već mnogi odustati u čitanju ovog članka i pomisliti kako je to u pitanju neki kilometarski kod. Međutim, situacija je baš suprotna, i čitav kod staje u svega dvadesetak redova.

Prvo, otvorite tab Developer u vašem Ribbonu a zatim idite na VBA editor, otvorite novi modul i unesite sledeći kod:

’Odmah na početku definišemo varijable

Sub sabiranje()

Dim kraj As Long

Dim red1, red2 As Integer

’Zatim aktiviramo sheet u kome hoćemo da izvršimo operaciju

Sheet1.Activate

’Pošto ćemo raditi Do While petlju moramo da nađemo poslednji red u tabeli do kog će petlja vrteti. Zato koristimo  sledeće 3 linije koda.

Range("D100000").Select

Selection.End(xlUp).Select

kraj = Selection.Row

’ Do while petlju sam radio u koloni „D“ zato što su za svaku grupu patika svi redovi za sve veličine popunjeni izuzev subtotala.

Range("D2").Select

Selection.End(xlDown).Select

’Stavio sam da petlja radi do poslednjeg reda u tabeli

Do While red2 < kraj

’ Definisao sam početak i kraj oblasti tj Range-a za svaku grupu patika

        red1 = Selection.Row

        Selection.End(xlDown).Select

        red2 = Selection.Row

’Zatim sam sabrao ćelije u tom Range-u ali iz kolone F jer se tu nalaze količine tj kvantiteti i rezultat sam ubacio u kolonu F u sivu ćeliju koja se nalazi na vrhu

        Cells(red1 - 1, 12) = WorksheetFunction.Sum(Range(Cells(red1, 12), Cells(red2, 12)))

’Prebacio sam se u koloni „D“ na sledeću grupu patika

        ActiveCell.Offset(2, 0).Select

    Loop

’Kada sve završi, da se vrati u ćeliju A1

    Range("A1").Select

End Sub

Kada startujemo makro, on će u ćeliju F2 da upiše rezultat 48, u ćeliju F9 rezultat 7 i tako dalje. Konačan rezultat izgledaće kao na sledećoj slici:

Screen Shot 2016-03-02 at 18.16.03 copy

Za ovaj kod mi je bilo potrebno dva sata da ga osmislim tako da može da završi posao u 10.000 redova za četiri sekunde. Sa druge strane, controlleru je bilo potrebno preko pet dana mukotrpnog rada.

Dobar cost-benefit, zar ne?

Autor teksta je Darko Vlajković, Konsultant, Menadžment Centar Beograd. Tekst je preuzet iz Controlling magazina 07.