“Od njive do trpeze”, (Excela+VBA+SQL), autorski tekst Željko Ćulibrk, Business Controller, Volvo Truck Corporation

“Od njive do trpeze”, (Excela+VBA+SQL), autorski tekst Željko Ćulibrk, Business Controller, Volvo Truck Corporation

ZeljkoCulibrk_high

 

 

 Željko Ćulibrk, Business Controller, Volvo Truck Corporation

Željko Ćulibrk, Business Controller, Volvo Truck Corporation

 

Bez obzira na veličinu, delatnost i kompleksnost, svako poslovno okruženje ima najrazličitije moguće izvore podataka i aplikacije koje ih opslužuju, kao što su SAP R3, Microsoft Dynamics NAV, Epicor iScala, Business Objects, Cognos, Access, Excel i slično. Ono što sve njih povezuje su ljudi koji proizvode razne izveštaje za potrebe upravljanja, merenja performansi ili zakonskih obaveza. Ti nadljudi, često u malim jedinicama vremena, povezuju SAP/BEx izveštaje, podatke o prodaji u raznim Excel tabelama, standardne izveštaje lokalnih ERP programa, korporativne podatke sa raznih data warehouses… Ta raznolikost formata i baza podataka kojima treba da se pristupi, istovremeno nameće potrebu da controlleri moraju da budu vešti u manipulaciji svima njima. Jedno od rešenja je mala lokalna baza podataka (uz korišćenje već postojećih baza kojima imamo direktan pristup) na kojoj će svi ti šaroliki podaci biti „presloženi“ i uređeni za dalju upotrebu.

Structure Query Language (SQL) je jezik kojim se komunicira sa bazama podataka kao što su MS SQL, ORACLE, IBM DB2, MySQL, MS Access, Excel… Zajedničko mesto gde bi se svi ti podaci sakupljali, manipulisali i vraćali nazad u baze podataka mogao bi da bude iExcel sa svojim neprikosnovenim Visual Basic for Applications (VBA) modulom. Mogućnosti koje daje Excel sa svojim funkcijama dižu se na kvadrat korišćenjem VBA, a na kub sa korišćenjem SQL-a. U redu su sve napredne Excel funkcije (INDEX, MATCH, OFFSET, VLOOKUP, GETPIVOTDATA, DSUM, SUMIF, SUBTOTAL, FIND, SUBSTITUTE itd), uslovno formatiranje, validacija podataka, „goal seek“, grafikoni i pivot tabele, ali tek kada „na dugme” mogu da dobacim do bilo čega i bilo gde na mreži, onda je to moć. VBA je sastavni deo svake Microsoft Office aplikacije (Alt+F11) i daje nam tu moć, a sa Record Macro bez ikakvog predznanja polako nas uvlači u taj bogati svet neograničenih mogućnosti.

 

 

Slika 1

Svaki podatak (DATA) ima svog vlasnika (OWNER) i ima svoju fizičku lokaciju – nalazi se na određenom serveru u određenoj bazi/tabeli ili određenom Excel workbook/worksheet/cell. Taj podatak može da se menja (CREATE/UPDATE/DELETE) i može da se koristi (SELECT). Samo vlasnik sme da menja podatke! Ovo samo znači da svako “prekucavanje” podataka, copy/cut/paste predstavlja narušavanje integriteta podatka, a redundansa njegove fizičke lokacije predstavlja rizičnu avanturu u svakom daljem korišćenju tog podatka. Ako sve ovo prihvatimo, razumeli smo da je „baza“ podacima – baza podataka.

Od njive …
U našoj kompaniji Marija unosi kurseve poslovnih banaka u sistem. Kasnije, Nataša pravi izlazni račun za prodate kamione ugovoreno u evrima po prodajnom kursu banke na dan fakturisanja. S obzirom na već primljeni avans, kalkulacija se polako usložnjava … Kako pomoći da ne dođe do greške prilikom kursiranja?

Na sajtu poslovne banke nalazi se tabela sa važećim kursevima za tekući dan.
“Tradicionalan” način podrazumeva korišćenje pretraživača, odlazak na stranicu banke i prekucavanje vrednosti u ERP aplikaciju u za to predviđeno mesto. Copy/Paste je malo bolja varijanta. Međutim, greška može da nastane ako smo u pogrešnom redu (USD umesto EUR) ili pogrešnoj koloni (prodajni za efektivu ili za devize) ili Marija nije došla na posao pa je menja koleginica kojoj ta operacija nije dnevna rutina …

Mnogo bolja varijanta je uvoz podatka. Umesto web pretraživača iskoristićemo Excel. Napravite sheet “Banka”. Probajte da odete u Data/From Web i u ćeliju A1 i povežite sadržaj stranice http://www.raiffeisenbank.rs/pocetna.849.html
Lepo. Sada imamo podatke u sheetu “Banka”. U sheetu “Marija” odradimo gimnastiku uz pomoć poznatih Excel funkcija.

Slika 2

U ćeliji C17 imamo spreman SQL upit koji šaljemo na izvršenje. U njemu je definisana šifra valute, datum i vrednost. U Developer/Insert/Button (Form Control) ubacujemo “dugmiće” na koje “kačimo” odgovarajuće VBA procedure.

Sledećeg poslovnog dana Marija “osvežava“ stranicu i unosi novi kurs… Ceo proces sastoji se od dva klika, a integritet podataka je zadovoljen. Kontrolom pristupa aplikaciji obezbeđujemo se od neautorizovanog unosa podataka u naš sistem.

 

Slika 3

 

Slika 2

 

Connection ToSQL je set instrukcija za povezivanje sa bazom podataka u kojem se nalaze username, password, ime servera… Ove parametere možete da dobijete od vašeg IT administratora!

… do trpeze
Nataša je u svoju aplikaciju ubacila iznos ugovorene cene, datum prijema avansne uplate i iznos avansa u EUR. Sada izdaje konačni račun i jedini ulazni parametar je datum konačnog računa (žute ćelije). Nataša ima VBA funkciju GetRate koja joj vraća vrednost kursa iz SQL-a.

Šire gledano, na ovaj način možemo da dobijemo bilo koji podatak iz cele baze na koju je ova funkcija „nakačena“. Prostim SQL upitom od jedne rečenice možemo da prevučemo na milione redova i desetine kolona u naš, s razlogom, neizostavni Excel.

 

Tekst je preuzet iz Controlling magazina 04.

Autor teksta je Željko Ćulibrk, Business Controller, Volvo Truck Corporation

Autor

Željko  Ćulibrk

BUSINESS CONTROLLER

VOLVO TRUCK CORPORATION


Napiši komentar

Newsletter pretplata

Autori Tagovi
  • Aleksandar Duković (4)
  • Aleksandar Nedeljković (1)
  • Aleksandar Nešić (1)
  • Aleksandar Pejčić (1)
  • Aleksandar Predić (2)
  • Aleksandar Teofilović (3)
  • Aleksandra Dutina (2)
  • Aleksandra Janković (1)
  • Aleksandra Paunić (1)
  • Aleksandra Đorđević (2)
  • Almir A. Budalica (20)
  • Ana Petonjić (1)
  • Ana Petrović (1)
  • Andreas Graf (1)
  • Andrej Beslać (1)
  • Andrej Kuku (1)
  • Andrija Pavlović (2)
  • Anja Atanasijević (1)
  • Anja Dadasović (1)
  • Biljana Dimitrijević (1)
  • Biljana Dukovic (1)
  • Biljana Masić (6)
  • Bjarte Bogsnes (1)
  • Bogdan Kravić (1)
  • Bojan Grahovac (1)
  • Bojan Pavlović (1)
  • Bojan Radoš (2)
  • Bojan Radun (1)
  • Bojan Šćepanović (517)
  • Bojana Pejčić (26)
  • Bojana Radović (1)
  • Bojana Vesić Anić (1)
  • Bojana Vesić Antić (1)
  • Branislav Lončar (3)
  • Branislav Vujović (1)
  • Branislav Zobenica (1)
  • Cmilja Tucaković (1)
  • Dalibor Pajić (1)
  • Daniela Laketic (31)
  • Danijela Medić (1)
  • Danijela Popović (1)
  • Danijela Resimić (1)
  • Danijela Tuco (1)
  • Darko Bjelić (2)
  • Darko Samardžija (1)
  • Darko Vlajkovic (27)
  • David Momčilović (1)
  • Davor Sakač (1)
  • Dejan Marković (1)
  • Dejan Đorđević (1)
  • Dejana Manić Kavgić (2)
  • Denis Trbović (3)
  • Desa Ćuk (1)
  • Dimitrije Stojanović (1)
  • Vojislav Marjanović (3)
  • Dragan Radosavljević (2)
  • Dragan Ranisavljević (1)
  • Dragan Vještica (3)
  • Dragana Gondžo (1)
  • Dragana Guzina (1)
  • Dragana Lukić (1)
  • Dragana Nerandžić (1)
  • Dragana Ovčarov (1)
  • Dragana Stojanović (2)
  • Dragana Đorđević (1)
  • Draško Marković (1)
  • Dražan Planinić (1)
  • Dušan Krejaković (1)
  • Excel genije! (151)
  • Fabrizio Renzi (1)
  • Goran Petrović (1)
  • Goran Popović (4)
  • Goran Slijepčević (1)
  • Goran Vasić (1)
  • Goran Vujasinović (1)
  • Gorana Golubovic Vuksanovic (1)
  • Goranka Radojčić (2)
  • Gordana Jankov (1)
  • Gostujuci autor (514)
  • Ilija Vujović (1)
  • Irina Zdravković (2)
  • Istok Pavlović (1)
  • Ivan Anđelković (1)
  • Ivan Bešker (1)
  • Ivan Ćirković (1)
  • Ivan Dačković (1)
  • Ivan Kostadinović (1)
  • Ivan Veselinović (3)
  • Ivan Đurić (1)
  • Ivana Dagović (1)
  • Ivana Jevtić (1)
  • Ivana Milić (1)
  • Ivana Popović (1)
  • Ivana Savović (1)
  • Ivana Višnjić (3)
  • Ivana Vlahović (1)
  • Jasenka Stekić (1)
  • Jelena Jovanović (1)
  • Jelena Lečić Mirčetić (1)
  • Jelena Radovanac (1)
  • Jelena Ristić (1)
  • Jelena Stojmenović (1)
  • Jelena Vučković (1)
  • Jovan Gligorijević (1)
  • Jovan Krstić (1)
  • Jovana Kondić (2)
  • Jovana Stanojčić (1)
  • Jovo Stokić (2)
  • Katarina Ćevriz (2)
  • Kristina Bojović (1)
  • Ksenija Karić (1)
  • Lazar Džamić (1)
  • Leo Pandžić (2)
  • Lidija Latinović (1)
  • Ljubomir Skupek (1)
  • Lucija Vesić (1)
  • Maja Mrkalj (1)
  • Maja Nikčević Rmandić (1)
  • Maja Petrović (1)
  • Maja Šobot (1)
  • Maja Verlašević (1)
  • Maja Zikic (1)
  • Mari Glavonjić (2)
  • Marija Đurović (1)
  • Marija Kostić (1)
  • Marija Rokvić (1)
  • Marija Švigir (32)
  • Marija Tatarević (3)
  • Marijana Krička (1)
  • Marina Mitić Jekić (1)
  • Mariora Andraš Tomić (1)
  • Marko Agatonović (2)
  • Marko Bekić (1)
  • Matjaž Fajfar (2)
  • Milan Listeš (2)
  • Milan Maglov (1)
  • Milan Manić (1)
  • Milan Marković (1)
  • Milan Milenković (1)
  • Milan Radivojevic (1)
  • Milan Simić (1)
  • Milan Zaletel (1)
  • Milan Đorđević (1)
  • Mile Mitrović (47)
  • Milena Janjić (3)
  • Milena Nikolov (1)
  • Milena Radosavljević Đorić (1)
  • Milena Rajić (1)
  • Milenko Dželetović (1)
  • Milica Altgelt (1)
  • Milica Ivic (1)
  • Milica Đorđević (1)
  • Miloš Cvetković (7)
  • Miloš Jauković (1)
  • Miloš Jeličić (2)
  • Miloš Nedeljković (1)
  • Miloš Pucarević (1)
  • Miloš Puzić (1)
  • Miloš Simić (1)
  • Miloš Vasić (1)
  • Miloš Zeković (1)
  • Miona Živkov-Ivanišević (4)
  • Mirjana Pašalić (2)
  • Jelena Jovanović (5)
  • Mladen Ranković (1)
  • Natalija Jegdić (1)
  • Natalija Mihajlović (1)
  • Natalija Pešić (2)
  • Natalija Popovic (1)
  • Nataša Kuzmanovski (1)
  • Nataša Stamenković (2)
  • Nataša Žikić Buha (1)
  • Nebojša Vlatković (1)
  • Neda Čičarević Tepić (1)
  • Neda Jovanović (1)
  • Nemanja Knežević (1)
  • Nemanja Nikolić (3)
  • Nenad Dlačić (1)
  • Nenad Kovačević (1)
  • Nenad Radunović (1)
  • Nenad Trajkovski (1)
  • Nevena Dokmanović (1)
  • Nevena Radovanović (1)
  • Nevena Vračar (1)
  • Nikola Avram (1)
  • Nikola Cvijanović (1)
  • Nikola Petreski (1)
  • Nikola Stokić (2)
  • Nikola Turkan (1)
  • Nikša Vušurović (1)
  • Olga Mirković (1)
  • Olivera Dostanić (1)
  • Olivera Krneta (1)
  • Olivera Nikodijević (1)
  • Petar Ćurčić (1)
  • Petar Popović (1)
  • Petar Živković (3)
  • Predrag Krasojevic (7)
  • Predrag Kudra (1)
  • Predrag Micić (1)
  • Predrag Petrović (5)
  • Rade Hajder (1)
  • Rade Radanović (2)
  • Rade Stojisavljević (1)
  • Radomir Petronijević (1)
  • Rajko Vasojević (1)
  • Roland Seeliger (1)
  • Sandra Rapo (1)
  • Sanja Jevđenijević (1)
  • Sanja Mrđanov (2)
  • Saša Stamenković (1)
  • Silvia Tomić (1)
  • Slavica Vučetić (1)
  • Slavica Vujičić (1)
  • Slaviša Lečić (2)
  • Slavko Vujnovic (7)
  • Slobodan Anić (2)
  • Slobodan Radoičić (1)
  • Slobodan Roksandić (1)
  • Slobodan Žepinić (1)
  • Snežana Glavonjić (1)
  • Snežana Trajkovski (1)
  • Snježana Pivaš (1)
  • Sonja Nenić Andreev (1)
  • Srdjan Grbić (1)
  • Srđan Grubić (1)
  • Srđan Pavlović (1)
  • Stefanija Georgieva (8)
  • Stevan Ćomić (1)
  • Svetlana Mirković Borčić (1)
  • Svetlana Pajić (1)
  • Svetlana Žikić (2)
  • Tamara Dragašević (1)
  • Tamara Lazić (3)
  • Tamara Matović (2)
  • Tatjana Bolpačić (22)
  • Tatjana Jovanović (1)
  • Tatjana Lukić (2)
  • Tijana Anđelić (1)
  • Tijana Drljević (1)
  • Tijana Rauš (1)
  • Tomislav Mimica (1)
  • Vedran Babik (1)
  • Vedrana Božić (2)
  • Vedrana Vukša (1)
  • Velibor Ilić (1)
  • Veljko Stanojković (1)
  • Veljko Žarić (1)
  • Veroljub Zmijanac (1)
  • Vesna Stojanvić (1)
  • Violeta Kovačević (1)
  • Vladan Buha (1)
  • Vladan Matović (1)
  • Vladimir Petković (2)
  • Vladimir Popović (1)
  • Vladimir Stojković (1)
  • Yeghishe Avagyan (1)
  • Žaklina Teofilović (2)
  • Žarko Milovanović (1)
  • Žarko Savić (1)
  • Željko Ćulibrk (1)
  • Željko Vidojević (1)
  • Živka Mutlak (1)
  • Živorad Radovanović (1)
  • Zoran Blagojević (1)
  • Zoran Daljević (1)
  • Zorica Dinić (1)
  • Zorica Popović (1)
  • Đorđe Koprivica (2)
  • Đorđe Milinković (1)
  • Đorđe Živanović (1)
  • Trenutno nema magazina