[ Jpeca @ 21.07.2006. 12:36 ] @
Za rad ručno kreiranje makroa potrebno je otvoriti VB Editor
Tools/Macro/Visual Basic Editor ili Alt + F11

Insert >> Module da otvoriš prozor za kod.

Ukoliko imate gotov kod jednostavno ga kopiraj i zalepi ga (paste) u otvoren prozor

Napravi izmene koje treba u kodu
Klik na Save.

Zatvori VBE (klik na X u gornjem levom uglu ).

Sad možeš startovati makro - Tools/Makro izaberi CombineFromAllFilesInADirectory

Obrati pažnju da je za startovanje bilo kog makroa potrebno da nivo Security bude (bar) Medium. U tom slučaju Excel će prilikom otvaranja radne sveske pitati da li želiš da omogućiš makroe ili ne. Default nivo sigurnosti je High koji ne dopušta izvršavanje makroa.


Osnovno o makroima moze se naći ovde


[Ovu poruku je menjao Jpeca dana 03.06.2011. u 09:10 GMT+1]
[ 10milan10 @ 12.10.2006. 09:33 ] @
U Jednom folderu imam 4 xls fajla. Jedna radna sveska je tabela u koju bi hteo da uz pomoc MACRO-a prekopiram kompletan sadrzaj drugog xls fajla. Znaci hteo bi da uz pomoc macro-a kopiram kompletan sadrzaj jednog radnog lista u drugi a da ne moram da otvaram fajl iz kog kopiram. Zelim da izbegnem select all pa copy pa otvaranje drugog xls fajla pa klik na prvu celiju pa paste.

[Ovu poruku je menjao 10milan10 dana 12.10.2006. u 15:47 GMT+1]

[Ovu poruku je menjao 10milan10 dana 12.10.2006. u 15:49 GMT+1]

[Ovu poruku je menjao Jpeca dana 31.10.2006. u 16:24 GMT+1]
[ Brz_na_tastaturi @ 12.10.2006. 22:04 ] @
Nije mi baš najjasnije šta ti treba, kakve veze ima prva rečenica sa ostatkom teksta?
U svakom slučaju makro možeš da dobijes tako što ćeš da pokreneš Tools->Macros...->Record new macro
odradiš to sto ti treba, zaustaviš snimanje makroa i eventualno (tj ako je potrebno) uradiš podesavanja oko naziva pod kojim ce biti snimljen novi fajl.
[ 10milan10 @ 13.10.2006. 10:29 ] @
Hteo sam reci da u jednom folderu imam 4 xls. fajla od kojih je jedan tabela u koju bi hteo da prekopiram podatke iz ostala 3 xls. fajla. Ta tri fajla se svakodnevno azuriraju. Pa me dakle interesuje da li je moguce napraviti macro koji ce mi bez otvaranja ta "tri xls" fajla kopirati podatke iz istih.
[ Jpeca @ 13.10.2006. 11:41 ] @
Može kao što si već dobio odgovor da celu proceduru uradiš jednom ručno (Copy/Paste) i da to snimiš u makro.

Pogledaj u helpu opciju Merge Workbook - možda bi mogao da iskoristiš u tvom slučaju.
[ tasman_76_82 @ 17.10.2006. 15:55 ] @
Postavljam ovu temu jer smatram da da bi se nesto iole ozbiljnije uradilo u excelu potrebno je znati macro-e.

Ja bih zamolila korisnike elita da sve sto smatraju korisnim vezano za macroe, podele sa drugima, sa sto boljim objasnjenjem, odnosno obracaju se pocetnicima.

Ja naime imam jedan naizgled glup problem, ali vec izvesno vreme ne mogu da ga resim.

Rec je o sledecem: Kreirala sam makro koji treba da me iz jednog sita automatski prebaci u drugi, i to funkcionise kada idete na "macro"-"run", izaberem naziv macroa i ok, ali, kada na kreiranom command buton-u pokusam da upisem taj macro, odnosno napravim mogucnost da clikom na to dugme aktiviram macro, imam problem sto nigde nema opcije Assign Macro, a ne znam kako drugacije da postignem potrebno?

Jako bih vam bila zahvalna ako neko zna kako da mi pomogne i ako imate jos nesto korisno u vezi makroa.

Moderatorima se zahvaljujem ukoliko prihvatite temu, a izvinjavam ako tema vec postoji (ja je nisam uspela naci, a prelistala sam detaljno veliki broj slicnih tema).

Pozdrav!!!
[ Gix_ @ 17.10.2006. 16:32 ] @
Re,

Nista nije cudno da nemozes da asociras tvoj macro za dugme (Bouton)
jer si izabrala pogresno dugme .
Drugacije receno postoje dve vrste ComandBoutona, jednoj od njih mozes da asociras macro koji si
napisala u Modulu , a drugoj vrsti macro napisan se nalazi u kodi Shetets (Lista)

1 Stavi strelicu misa na dugme bez ikakvog cliciranja ako text Buton se avisira , tom butonu mozes da asociras tvoj macro
2 Stavi strelicu misa na dugme bez ikakvog cliciranja ako text ButonCommande se avisira njemu nemozes da asociras macro
vec moras da napises tvoj macro u codi sheta a ne u modulu .

Cao
[ Jpeca @ 18.10.2006. 07:39 ] @
Mala dopuna.
Ukoliko je dugme iz palete alata Forms njemu se makro može u iz konteksnog menija kao što je opisano ili u trenutku kreiranja.

Ukoliko je dugme iz palete alata Control Toolbox makro mu se može dodeliti na dupli klik u dizajn režimu i onda u događaj Click ovog dugmeta upišeš poziv svog makroa Npr:
Code:

Private Sub CommandButton1_Click()
 MojMakro
End Sub


U slučaju dugmeta sa palete alata Control Toolbox imaš više mogućnosti podešavanja - boja dugmeta (nisam 100% siguran ali ovo nisam našao kod dugmeta sa palete alata Forms) ili programiranje događaja na DragOver i dr.

Pre korišćenja moraš izaći iz dizajn režima.

Evo nešto o razlikama ove dve vrste kontrola http://www.ozgrid.com/Excel/Excel-controls-forms-toolbox.htm
[ tasman_76_82 @ 18.10.2006. 12:33 ] @
hvala vam.. Sada cu da probam po vasim uputstvima, pa da vidimo jel radi..
Jos jednom hvala i ako imate jos nesto korisno....
[ tasman_76_82 @ 18.10.2006. 12:48 ] @
Hvala, hvala, hvala... Radi. Izabrala sam dugme iz palete alata Forms i vrlo, vrlo, jednostavno dodelila macro.. A kad samo pomislim koliko sam se mucila....
[ mirko1949 @ 22.10.2006. 13:20 ] @
Kako da se izbegne pri otvaranju Excela za Radnu svesku koja sadrži makroe pojavljivanje upita: Enable Makros i Disable Makros
[ Slobodan Trebovac @ 22.10.2006. 13:33 ] @
Tools→Options→kartica Security→pritisnes dugme Macro Security→izaberes Low (not recommended)→OK→OK
To je to.
[ Jpeca @ 23.10.2006. 08:33 ] @
Rešenje za sopstvene makroe postoji i bez potrebe da smanjuješ sigurnosni nivo. Makroe koje si sam pisao možeš potpisati i tako izbeći pitanje "Enable Macros". Prethodno je potrebno kreirati svoj digitalni potpis.

Da kreiraš svoj digitalni potpis:
Pronađi i startuj fajl SelfCert.exe (negde u Program files/Microsoft Office... folderu) i upiši svoje ime .

Nakon toga možeš da "potpisuješ" svoje projekte. Iz Tools menija VBA Editora aktiviraj Digital Signature i izaberi prethodno kreiran potpis.

Ukoliko ti je nivo sigurnosti Medium (preporučljivo), prvi put kad startuješ tabelu koja sadrži potpisani makro treba da štikliraš Trust this source i ubuduće neće biti iritirajućeg pitanja za sve tabele koje si potpisao.
[ Jpeca @ 01.11.2006. 15:07 ] @
Primeri različitih makroa mogu se naći na:

http://www.praktikum.co.yu
http://www.ozgrid.com/VBA/

VBA Language References dokumentacija može se downloadovati sa:
http://msdn.microsoft.com/office/download/vba/

Osnovno o kreiranju makroa (na srpskom)
http://office.microsoft.com/sr-sp-latn/excel/HA011189582074.aspx

Predavanja Doc.dr. Djukanovic Slobodana sa ETF iz Podgorice. "PROGRAMIRANJE KROZ APLIKACIJE" (predlog neptuncokg) http://tutoriali.org/programiranje_kroz_aplikacije.html

Knjiga za Excel VBA na srpskom
http://knjige.kombib.rs/Excel_...ramiranje_u_VBA_bez_tajni.html

[Ovu poruku je menjao Jpeca dana 14.12.2015. u 08:02 GMT+1]
[ bg_79 @ 14.12.2006. 10:03 ] @
imam sledeci problem:
u sheet1 mi se nalaze potrebni podaci za vba aplikaciju. Napravio sam UserForm koji se sastoji od CommandButton na ciji klik rezultati treba da se smeste na odgovarajuce mesto u isti sheet1. kako izvesti da mi taj button bude vidljiv cim otvorim excel dokument odnosno da ne moram da ulazim u vb editor i kliknem na run
[ Jpeca @ 14.12.2006. 10:29 ] @
Nisam razumeo da li ti user form koristi još za nešto ili samo za dugme.

Ako je samo za dugme bolja varijanta je da dodaš dugme na list, iz palete Forms i da ga povežeš sa VBA kodom, za šta objašnjenje možeš naći ranije u ovoj temi.

Ako se user form koristi i za nešto drugo treba da staviš sledeći kod u dodađaj Workbook_Open
Code:

Private Sub Workbook_Open()
  Load UserForm1
  UserForm1.Show
End Sub


gde umesto UserForm1 staviš naziv svoje forme .
[ bg_79 @ 15.12.2006. 09:40 ] @
Citat:
Jpeca: Nisam razumeo da li ti user form koristi još za nešto ili samo za dugme.

A

Ako se user form koristi i za nešto drugo treba da staviš sledeći kod u dodađaj Workbook_Open
Code:

Private Sub Workbook_Open()
  Load UserForm1
  UserForm1.Show
End Sub


gde umesto UserForm1 staviš naziv svoje forme .


hvala ti,ovo je resilo problem
[ Ilic Igor @ 22.01.2007. 20:42 ] @
"The document contains macros. Macro language support for this application is disabled. Features reguiring VBA are not available. Would you like to operi this document read-only?"

Ovo mi se desavalo i sa proslim verzijama i uvek zaboravim sta treba da uradim, pokusavao sam da sledim uputstva ali i dalje mi se pojavljuje poruka kada pokrecem i kada gasim (za sada) word. Sta uraditi da mi se ne pojavljuje ovo upozorenje, u pitanju je office 2007?

Hvala unapred.
[ meduljak @ 01.02.2007. 21:48 ] @
Ljudi, ajde pogledajte malo i ovaj topic:
http://www.elitesecurity.org/t...odul-missing-VB-project-or-dll

Da se ne ponavlja pitanje :-)
[ dux_cro @ 23.02.2007. 18:34 ] @
Imam macro koji iz worda otvori excel i kopira. Napravio sam UserForm koji nakon kopiranja (prije zatvaranja excela) pita dal treba još nešto kopirati. Problem je što se taj UserForm utvori u prozoru Worda, a na ekranu je prvi (aktivan) Excel pa izgleda kao da je zablokiralo, dok se ne klikne na tab worda. Postoji li načina kako da se forma vidi ?
Formu pozivam sa ImeForme.show

Hvala
[ Jpeca @ 25.02.2007. 11:40 ] @
Mozeš da minimizuješ Excel pre pozivanja forme.
Code:
xlApp.WindowState = xlMinimized

gde je xlApp referenca na Excel

Ukoliko je potrebno da Excel ostane otvoren posle zatvaranja forme vraćaš prozor na normalu
Code:
xlApp.WindowState = xlNormal


[ dux_cro @ 25.02.2007. 19:01 ] @
To sam tražio, radi savršeno... Puno hvala
[ dabicus @ 12.04.2007. 08:46 ] @
Kako mogu da koristeci VBA "spojim" u jednoj celiji datum i vreme koji vec postoje u druge dve celije. Ako moze i bez VBA bilo bi odlicno..



U medjuvremenu sam nasao lakse resenje.

[Ovu poruku je menjao dabicus dana 16.04.2007. u 12:43 GMT+1]
[ Sudarica @ 25.06.2007. 14:58 ] @
Jasno mi je ovo pokretanje makro naredbe koja počinje sa

1. Sub ()- njih možemo pronaći i pokrenuti na više načina

I - Tools-->Macro --> Macro --> ( izaberi naziv svoje makronaedbe ) i Run

primjer: 1.

Sub ShowTime()
Range("C1") = Now()
End Sub

2. Function Zbroj(prvi, drugi) As Integer

II - Insert Function -->All--> i pronađeš svoju funkciju.

primjer: 2

Function sumNo(x, y)
sumNo = x + y
End Function


3. Public ( to ne znam šta radi i gdje mogu pronaći te makroe. Može malo onako objasniti (onima koji baš neznaju engleski a znaju prepisati)

Primjer: 3

Public Sub ShowTime()
Range("C1") = Now()
End Sub

I šta to znači ?
II kad se koristi
III kako se koristi

Možda glupo ali ja ne znam

4. Private ( pretpostavljam da se taj početak koristi kod forme odnosno kod zadataka koji se daju formi tu sam napravila par ali sam isto kopirala zadatrke tako da mi je tu nešto poznato.

Primjer: 5

Private Sub ShowTime()
Range("C1") = Now()
End Sub

??????????????

Molim Vas pomoć običnim rječnikom kako rade primjer 3 i 4. ili je to prekomplicirano za nas koji neznamo. možda ćemo ovakvim jednostavnim primjerima shvatiti. Idemo probati.

Hvala pozdrav


[ Jpeca @ 25.06.2007. 15:40 ] @
Public i Private su ključne reči koje određuju opseg vidiljivosti rutine (Sub), funkcije (Funcition) ili promenljive. Ono što je označeno kao Public biće vidljivo ne samo iz tog modula nego i nekog drugog modula - tj celog dokumenta/tabele. Ono što je označeno kao Private biće vidljivao samo unutar celine/modula u kojem je definisano.
Dakle, u primeru 3. makro ShowTime biće dostupan u listi Makroa (isto kao da ključna reč nije navedena).
U primeru 4 (5?) makro ShowTime može pozvati neki drugi makro unutar istog modula, a nije vidljiv u listi makroa.
[ Sudarica @ 25.06.2007. 15:56 ] @
sada mi je jasno

drugim rječima public znači za sve, a private samo za određene preko nekoga durgoga ( zato oni postoje u UserForm).

Hvala
pozdrav
[ 3okc @ 17.07.2007. 22:26 ] @
Citat:
tasman_76_82 wrote 17.10.2006. u 16:55
Ja naime imam jedan naizgled glup problem, ali vec izvesno vreme ne mogu da ga resim.

Rec je o sledecem: Kreirala sam makro koji treba da me iz jednog sita automatski prebaci u drugi, i to funkcionise kada idete na "macro"-"run", izaberem naziv macroa i ok, ali, kada na kreiranom command buton-u pokusam da upisem taj macro, odnosno napravim mogucnost da clikom na to dugme aktiviram macro, imam problem sto nigde nema opcije Assign Macro, a ne znam kako drugacije da postignem potrebno?

Još malo pa će godišnjica ovom pitanju i autorka je sigurno već i zaboravila kako ga je rešila ali moram nešto da primetim. Niko se nije osvrnuo na to da makro uopšte nije potreban da bi se prešlo u drugi radni list (work sheet). Za istu svrhu sasvim će lepo poslužiti i hiperveza: u ovom slučaju cilj ili odredište će biti unutar dokumenta ali će "odraditi" jednako kao i bilo koji taster (button); a pri tom, recimo, neće biti smaranja sa "security issue" pri otvaranju dokumenta.

Ono, svakako da nije loše naučiti kako izgleda VBA naredba za istu stvar ali, barem je takvo moje mišljenje, uvek je bolje odraditi BEZ makroa, kad već postoji mogućnost (alat).

Takođe sam skoro naišao na jednu temu gde se pisalo o kreiranju forme za unos/prikaz/brisanje podataka iz tabele. (videti: Re: [Excel] User form pomocu VB http://www.elitesecurity.org/p1640227)
Ovo je takođe već omogućeno, postoji gotov alat u Excel-u, zove se Data Form.

Sem ukoliko nije cilj pisanja makroa upravo zbog samih makroa, tj radi učenja/vežbe (što se iz gornjih pitanja ne može zaključiti), sasvim je ok pisati sopstvene verzije ali inače (a to je moje mišljenje) nema smisla gubiti vreme.

[ deki999 @ 11.02.2008. 10:14 ] @
kad kliknem na Tools>Macro sve mi je sivo sem Security.
jel to nešto fali mom excelu?
računar je na poslu pa sigurno ima neke zabrane ili je excel neka osakaćena verzija...
[ mirjanagb @ 22.02.2008. 14:49 ] @
evo jednog glupog pitanja i od mene:

imam 3 snimljena makroa i jedan makro u vb napisan...
treba mi 4 puta da kliknem da izracunam sto mi je potrebno ... radi se o 4, 5 excel sheet-a, ja to treba da napisem sve u jednom, tako da kad kliknem samo jednom, sve izracuna.

da li moze da se kombinuje snimljen makro i napisan vb kod?

[ Jpeca @ 23.02.2008. 08:04 ] @
Prilikom snimanja makroa generiše se VB kod, tako da je praktično svejedno da li si ga snimila ili napisala.
Genirasani kod naćićeš u nekom od modula radne sveske ili u Personal Macro Workbook, zavisno šta je izabrano prilikom snimanja.

Jedan makro možeš jednostavno startovati iz drugog makroa, tako što navodiš ime (i eventualno parametre, ako ima)
Dovoljno je da ti svi makroi budu u istoj radnoj svesci - može i u različitim modulima. Za tvoj slućaj:

Sub StartujSve()
SnimljeniMacro1
SnimljeniMacro2
SnimljeniMacro3
MojMakro
End Sub

Ukoliko je potrebno da izvršiš neki makro iz druge radne sveske npr Personal Macro Workbook (Personal.xlsb) poziv je
Application.Run "PERSONAL.XLSB!SnimljeniMacro2"
[ mirjanagb @ 23.02.2008. 12:39 ] @
da ... tako nesto mi treba ... jos jedno pitanje vezano za to:

to bi trebalo da izgleda ovako: ja napisem odredjene brojeve u excelu u kom je napisan makro i kliknem na njega koji treba da: izracuna podatke iz 2 excel sheet-a i kopira rezultat u jedan novi sheet i zatvori ta dva excela. onda treba da startuje program koji racuna druge podatke (on se sam zatvori kad zavrsi podelu), automatski da se otvori excel snimljen kao .csv (koji je u sklopu tog programa) izracuna tu sta treba kopira podatke u otvoreni novi sheet, zatvori i u tom novom sheet-u napravi grafik.

ja sam, uz pomoc Jpece, napisala ali sa 3 makroa, moram sve excele otvoriti, sama startovati program i sama napraviti grafik.
[ Djuka Maricic @ 07.04.2008. 16:36 ] @
Treba mi pomoc vezana za [Eksel] textbox u vba.

Imam dva textaboxa u koje korisnik treba da unese odgovarajuce podatke, kada to uradi desava se nesto mnogo cudno.
ako se u prvi textbox unese 10.2 vba to shvati kao 102, tacku uopste ne prepozna, jedino kad se unese zarez npr 10,2 onda je uredu, a vrednost iz drugog textboxa je ok bez obzira da li se unese zarez ili tacka.

Pokusavao sam i sa promenom sistemskih decimalnih separatora, nije pomoglo, cak sam i vrednost iz prvog textbox upisivao u neku celiju u ekselu pa je vracao u kod, ali ni to nije pomoglo.

Stvarno nemam predstavu sta moze biti


Hvala!
[ rgdrajko @ 24.05.2008. 19:41 ] @
Citat:
Djuka Maricic: Treba mi pomoc vezana za [Eksel] textbox u vba.

Imam dva textaboxa u koje korisnik treba da unese odgovarajuce podatke, kada to uradi desava se nesto mnogo cudno.
ako se u prvi textbox unese 10.2 vba to shvati kao 102, tacku uopste ne prepozna, jedino kad se unese zarez npr 10,2 onda je uredu, a vrednost iz drugog textboxa je ok bez obzira da li se unese zarez ili tacka.

Pokusavao sam i sa promenom sistemskih decimalnih separatora, nije pomoglo, cak sam i vrednost iz prvog textbox upisivao u neku celiju u ekselu pa je vracao u kod, ali ni to nije pomoglo.

Stvarno nemam predstavu sta moze biti


Hvala!


Podesavanja u Regional seting su podesena na zarez umesto na tacku kao decimalni separator(podesavanja za nasu kodnu stranu, cirilica, latinica).

Za prvi textbox problem mozes resiti na taj nacin sto ces ces tacku zameniti zarezom, ovako:

Code:
Private Sub TextBox1_Change()
    TextBox1.Text = Replace(TextBox1, ".", ",")
End Sub
[ Sudarica @ 04.11.2009. 10:25 ] @
molim pomoć,
imam verziju Excela 2007 i nemogu pronaći alatnu traku s koje mogu uzeti smajleka ili bilo kakav drugi dio na koga mogu pridružiti svoju makro naredbu a da bi mi bila dostupna na mojoj zadanoj alatnoj traki odnosno kako pospremiti makro naredbe da mi budu dostupne na "Dodaci" ( Add ins ) alatnoj traki ili traci (gramatika)

Hvala

mislim da nisam dobro objasnila ja bih u svoju traku (zadanu) dodala različite ikonice (kako bi mogal razlikovati) na koje bi prikačila makro naredbu i koristila ih kada mi zatreba. Trenutno vidim da su mi sve ikonice jednake (rakovi)

[Ovu poruku je menjao Sudarica dana 04.11.2009. u 16:25 GMT+1]
[ dj_zeka @ 11.02.2010. 08:42 ] @
problem, pokušavam da napravim neke funkcije koje treba da vrate rezultat beskonačno za određene vrednosti argumenata. Npr. tangens da u 90 stepeni vrati beskonačno. Konkretno za to sam napisao:

Function tang(x As Double) As Double

If x = 90 Then
Exit Function
Range.Offset(0, 1).Value = "beskonacno"
End If
tang = tan(3.14 / 180 * (x))

End Function

kompajler vraća poruku "Compile error: Argument not optional".

Ako neko zna šta mi je činiti, bio bih mu zahvalan