Šta je novo?

Excel - problematika

nemanja123

Čuven
Učlanjen(a)
28.10.2007
Poruke
8,566
Poena
665
Imam par pitanja za Excel koje nisam uspeo da rešim.

Glavni problem mi je što u okviru jednog macro-a (koji sređuje tabelu sa podacima) treba da se uradi zamena teksta. Sve radi kako treba ali kada u okviru reči ima slova Ć (latinično) te reči ne menja.

Npr: u okviru makroa mu zadam da zameni tekst "1234_Pera_Perić" tekstom "1234". Makro taj deo uopšte ne uradi dok ako nema slova ć (š prepoznaje i radi kako treba) on radi normalno. Otvorio sam tekst tog makroa i samo mi je "ć" prebacio u "c". Ne uspevam nikako da ubacim "ć".
- Zamena teksta u exelu ručno radi kako treba.

Da li postoji rešenje za ovo?
- Možda da se nekako stavi da je Unicode ili da se stavi šifra tog unicode karaktera. Možda pak može da se stavi tu neki wildcard.
Nisam vičan ovome, pa samo teoretišem...
 
Probaj sa "1234_Pera_Peri" & ChrW$(&H0107)

Veliko hvala na javljanju!

U međuvremenu sam uspeo sa Chr$(63).
Možda još nekome zatreba pa evo rešenja za naša slova.

1. U ćeliju (recimo) A1 upisati naše slovo, a u neku drugu ćeliju upisati formulu =CODE(A1). - Time dobijate kod za dato slovo.
2. U VBA (edit macroa) zameniti slova ć/č (isti je kod za oba) sa Chr$(63)
- Ukoliko se slovo nazali u sredini koristiti znak +. Npr za "Perić Pera" bi se koristilo "Peri" + Chr$(63) + " Pera"
 
Imam drugi problem (dupli post je zbog preglednosti).

Kada kopiram tekst koji uvek zauzima kolone od A do R (samo broj redova varira) želim da izbriše neke kolone (tako da ostanu kolone od A do J) i da formatira u tabelu.
- To sam uradio tako što sam snimio makro, on izbriše te neke kolone (odradi još neke stvari) i onda formatira tabelu tako što uradi CTRL+A i onda format as table.

Problem je što CTRL+A daje fiskni kod u VBA, a meni će tabele varirati u redovima (kolone su fiksne)
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$J$45"), , xlYes).Name = _
"Table4"
Range("Table4[#All]").Select
ActiveSheet.ListObjects("Table4").TableStyle = "TableStyleLight9"

Jel postoji neki način da ovaj "Range" bude dinamičan i da broj redova zavisi broja redova koji su upunjeni?
 
Na brzinu, nisam ovo odavno radio... :D

.Cells(.Rows.Count, "A").End(xlUp).Row
daje broj poslednjeg reda sa podacima u koloni A.
Tvoj range bi izgledao otprilike:
Range("A1" , Worksheets("Sheet1").Range("J1").End(xlDown)).Rows.Count
 
@Mojo Jo Jo
Hvala na odgovoru, ali nešto pravi problem. Kada to ubacim u Range umesto onog iznad, dobijem ovo:
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1" , Worksheets("Sheet1").Range("J1").End(xlDown)).Rows .Count, , xlYes).Name = _
"Table4"

Ali signalizira da nešto nije u redu tako što se zacrveni ceo taj red.
Da ne radim nešto pogrešno?
 
Kad se završio deo macroa koji ti briše sve te kolone koje su ti višak, isformatira kako si podesio itd. dodaj ovo

lr = Cells(Rows.Count, 1).End(xlUp).Row
lc = Cells(1, Columns.Count).End(xlToLeft).Column


ActiveWorkbook.Sheets("Sheet1").ListObjects.Add(xlSrcRange, Range(Cells(1, 1), Cells(lr, lc)), , xlYes).Name = _
"Table4"

Naravno, samo izmeni naziv sheeta ako je potrebno.
 
Nazad
Vrh Dno