[ Sudarica @ 01.12.2006. 09:15 ] @
Molim Vas pomoć
Dobivam tabele u kojima imam skraćene nazive npr.mj., a ja u tabeli nesmijem imati skraćenice. Kako da napravim makro (kada ne znam) da mi mjenja skraćene nazive u ispravne napr. mj.=Mjesec. Pokušala sam snimiti makro sa replace i dobro ide ali ne znam dali je to ispravan način. Kada napravim taj makro htjela bi ga staviti u Traku alata kako bi mi uvijek bio pri ruci odnosno da nebi morala svaki put snimati novi modul da mogu taj gumbić prenjeti nekom drugom svom kolegi kojeg također muče isti problemi. I kako taj makro da nadopunjavam ako mi se pojavi nova skraćenica. Neznam dali sam bila dovoljno jasna.
Pozdrav.
[ Jpeca @ 01.12.2006. 11:21 ] @
Citat:
Pokušala sam snimiti makro sa replace i dobro ide ali ne znam dali je to ispravan način.

Sve što radi je ispravan način :). Zaista i najlakši način da se to uradi i jeste korišćenje ugrađene replace funkcionalnosti.
Ako je to potrebno da često radiš i mrzi te stalno da kucaš, onda si dobro postupila što si snimila makro.

Citat:
Kada napravim taj makro htjela bi ga staviti u Traku alata

Da učiniš makro dostupnim iz toolbar-a:

1. Aktiviraj Tools/Customize
2. U kartici Commands izaberi grupu Macros
3. Prevuci Custom Button (smeška) na pogodno mesto na liniji alata
4. Ne zatvarajući Customize dijalog, aktiviraj konteksni meni (desni klik) za novo dugme
5. Iz konteksnog menija izaberi Assign Macro i dodeli svoj makro dugmetu
6. Iz konteksnog menija dugmeta možeš promeniti sličicu itd.

Citat:
...prenjeti nekom drugom svom kolegi kojeg također muče isti problemi

Da prebaciš kod svog kolege ovaj makro možeš da iz VBE modul sa makroom snimiš (Export file) i opet u VBE kod kolege dodaš (Import file) u Peronal.xls fajl, da bi makro funkcionisao za sve radne sveseke (vidi objašnjenje http://www.praktikum.co.yu/office/excel/xl_062.htm) Ako ti je lakše:
1. Snimi radnu svesku sa modulom u kome je makro kao Add In (Save As dijalog)
2. Snimljeni Add In prebaci kod kolege i
3. Otvori Excel kod kolege i dodaj Add In iz Tools -> Add In, Browse...

Ako i on želi dugme na toolbaru nalakše je da ponoviš postupak od gore.

Citat:
kako taj makro da nadopunjavam ako mi se pojavi nova skraćenica.

Ako aktiviraš VBE i nađeš makro koji si snimila videćeš da je to ustvari samo jedna komanda Replace (za jedan par)
U osnovnom obliku ovaj makro bi mogao da se napiše
Code:

Sub MyReplace()
  ActiveSheet.Cells.Replace What:="mj.", Replacement:="mjesec"
End Sub

Uz osnovne opcije ove komande What i Replacement možeš specificirati dodatno:
LookAt (vrednosti: xlWhole ili xlPart) - Da li se zamena odnosi na celu ćeliju ili može i na deo ćelije (12 mj.).
SearchOrder (vrednosti: xlByRows or xlByColumns) -Redosled pretraživaja - po kolonama ili redovima
MatchCase (vrednosti:True to make the search case sensitive) - kako tretiraš Velika/Mala slova
i još neke.

Dakle, da dodaš novu zamenu, otvoriš VBE, kopiraš prethodni red iz koda i uneseš šta se sa čime zamenjuje.

Elegantnije rešenje je da imaš rečnik zamene (kao neki poseban Excel fajl npr.) u kome bi upisivala parove za zamenu, onda iz makroa otvoriš taj fajl i izvršiš sve zamene koje su navedene. Osnovni kod je isti - treba dodati otvaranje Excel fajla, petlju koja prolazi kroz sve parove za zamenu i zatvaranje pomoćnog Excel fajal na kraju.
[ Sudarica @ 01.12.2006. 11:32 ] @
Zahvaljujem na pomoći ali najprije moram dobro proučiti ovo što ste napisali a onda ću se javiti. Još jednom hvala na iscrpnom odgovoru.
Pozdrav
[ Sudarica @ 03.12.2006. 11:38 ] @
Napravila sam makro sa svim mogućim parovima i super radi. Međutim neki parovi mi moraju biti podebljani pa sam ja jednostavno mislila da je dovoljno napisati kao u primjeru, ali ne radi. Neznam engleski (malo,malo). Ali ako sam savladala funkcije u velikom broju (za svoje potrebe) pa čak i velike ugnježđivanje i sl. sve uz pomoć Vaših stranica. Naučit ću ja i ovo, (joj nadam se-šala mala)

Code:

Sub MyReplace()
ActiveSheet.Cells.Replace What:="mj.", Replacement:="mjesec"
Selection.Font.Bold = False
ActiveSheet.Cells.Replace What:="god.", Replacement:="godina"
Selection.Font.Bold = True
End Sub

Mislila sam i napisala za prvi slučaj selektirani font podebljani = ne
za drugi slučaj selektirani font podebljani = da

a on me ne sluša.
[ Brz_na_tastaturi @ 04.12.2006. 08:03 ] @
Može ovako

Code:

Sub MyReplace()

With Application.ReplaceFormat.Font
        .FontStyle = "Regular"
End With

ActiveSheet.Cells.Replace What:="mj.", Replacement:="mjesec", ReplaceFormat:=True


With Application.ReplaceFormat.Font
        .FontStyle = "Bold"
End With

ActiveSheet.Cells.Replace What:="god.", Replacement:="godina", ReplaceFormat:=True

End Sub
[ Jpeca @ 04.12.2006. 08:06 ] @
U primeru koji si navela Format se odnosi samo na selektovanu ćeliju - a ne na one u kojima je izvršena zamena.

Da bi Replace funkcija izvršila i formatiranje (uz zamenu teksta) potrebno je da je aktivirana opcija ReplaceFormat:=True, npr:

ActiveSheet.Cells.Replace What:="god.", Replacement:="godina", ReplaceFormat:=True

Pre tog potrebno je postaviti željeni format prilikom Replace, npr.

Application.ReplaceFormat.Font.FontStyle = "Bold"

Dakle moglo bi da se napiše ovako:
Code:

Sub MyReplace()
  Application.ReplaceFormat.Font.FontStyle = "Bold"
  ActiveSheet.Cells.Replace What:="mj.", Replacement:="mjesec", ReplaceFormat:=False
  ActiveSheet.Cells.Replace What:="god.", Replacement:="godina", ReplaceFormat:=True
End Sub


Prva zamena izvršiće se bez promene formata ćelije, a druga zamena sa promenom formata ćelije.


Kao što je već napisano u prethodnom odgovoru - nisam stigao da osvežim listu pre nego što sam poslao odgovor.

[Ovu poruku je menjao Jpeca dana 04.12.2006. u 15:21 GMT+1]
[ Sudarica @ 04.12.2006. 08:08 ] @
Hvala veeeeeeelika,
radi kako treba, a i shvatila sam ali tek sada dok sam vidjela, jasno koristiće za dalje aada je jasno a prije mrak.
Pozdrav