Šta je novo?

Excel vba pomoć

nagard

Čuven
Učlanjen(a)
06.03.2004
Poruke
3,584
Poena
755
Treba mi pomoć kako da kroz vba u code-u celu jednu kolonu promenim odnosno u svakoj celiji u njoj da zamenim 3 karaktera zvezdicama funkcijom replace.
 
Za jednostavne stvari čak ne moraš ništa sam ni da pišeš. Otvoriš svoj excel file, odeš u ribon View, klik na strelicu ispod dugmeta Macros i kažeš "Record macro...". Daš tom makrou ime i neki shortcut i uradiš to što inače želiš ( selektuješ kompletnu kolonu, uradiš CTRL+H, ukucaš koje karaktere menjaš zvezdicama ) i i odeš na stop recording. Otvoriš VBA i vidiš šta je generisano. Ako ti trebaju neke varijacije, promeniš to u kodu ( zameniš kolonu, zameniš karaktere itd ).

Posle taj macro pozivaš svojim shortcutom i to je to.
 
Probao sam to već, ali ja ne tražim konkretan string unutar ćelije nego menjam uvek sredinu (proizvoljnog) stringa od pozicije 5 u dužini od 4 karaktera vrednošću "####". Znači treba mi REPLACE funkcija unutar VBA na celu kolonu kako se primenjuje.

Kada u koloni desno od ciljane snimim macro od pojedinačno primenjene funkcije REPLACE, dobijem:

Kod:
Sub Macro1()
' Macro1 Macro
    Range("B2").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=REPLACE(RC[-1],5,4,"####")"
    Selection.AutoFill Destination:=Range("B2:B100")
    Range("B2:B100").Select
End Sub

Ali mi u novoj koloni umesto očekivane vrednosti recimo NEKI####NGKOJI dobijiem =REPLACE(RC[-1],5,4,"####")

odnosno prepisanu funkciju... (!?!)
 
Probaj ovo

Stavio sam da se radi u B koloni koja ima header, pa zamena preskače header, tako da kreće faktički od B2 i ide do poslednjeg reda i menja 4 karaktera od pozicije 5 tarabama.

Kod:
Sub Replace_some_chars()
Dim lastRow, i
lastRow = ActiveSheet.UsedRange.Rows.Count
For i = 2 To lastRow
 Range("B" & i).Value = Replace(Range("B" & i).Value, Mid(Range("B" & i).Value, 5, 4), "####")
Next i
End Sub
 
Poslednja izmena:
Probam sutra, sada nisam pri officeu.
 
Problem koji rešavam je kalkulacija datuma.
Inputi su početni datum i po jedan parametar iz dve liste, lista A i lista B.
Datum zavisi od dve liste parametara, a svaki pojedinačni parametar iz obe liste sadrži konkretan uslov.

Npr ulazni datum je 1.1.1900.
A lista ima parametre 1-5, parametar A1 ima uslov ulazni datum+60, B lista ima parametre 1-5, parametar B1 ima uslov gleda se koji je broj nedelje u koji pada datum 1.1.1900.+60, onda se gleda krajnji datum te nedelje i njemu se dodaje +8, na kraju se dodaje +30.

Da li postoji mogućnost da se pomenute liste postave u padajuće menije u ekselu, odnosno da se na radnom listu postavi algoritam koji će da izvrši kalkulaciju na osnovu ulaznih parametara?
Dakle, input je datum, a onda sledi biranje po jednog parametra iz obe liste i kao rezultat je autput krajnji datum.

Ili je bolje da se pomenuti algoritam isprogramira u nekom programskom jeziku, koji bi bio najadekvatniji?
 
Poslednja izmena:
Problem koji rešavam je kalkulacija datuma.
Inputi su početni datum i po jedan parametar iz dve liste, lista A i lista B.
Datum zavisi od dve liste parametara, a svaki pojedinačni parametar iz obe liste sadrži konkretan uslov.

Npr ulazni datum je 1.1.1900.
A lista ima parametre 1-5, parametar A1 ima uslov ulazni datum+60, B lista ima parametre 1-5, parametar B1 ima uslov gleda se koji je broj nedelje u koji pada datum 1.1.1900.+60, onda se gleda krajnji datum te nedelje i njemu se dodaje +8, na kraju se dodaje +30.

Da li postoji mogućnost da se pomenute liste postave u padajuće menije u ekselu, odnosno da se na radnom listu postavi algoritam koji će da izvrši kalkulaciju na osnovu ulaznih parametara?
Dakle, input je datum, a onda sledi biranje po jednog parametra iz obe liste i kao rezultat je autput krajnji datum.

Ili je bolje da se pomenuti algoritam isprogramira u nekom programskom jeziku, koji bi bio najadekvatniji?

Možeš sve za početak u excel-u, sklonije je izmenama, ako nisi programer pa da sam napišeš i menjaš program po potrebi. Kada ustanoviš da je sistem koji si napravio u Excel-u dobar, možeš takav projekat da daš nekom programeru da ti uradi program sa nekom lokalnom ili centralnom bazom itd.

Najbolje je da daš primer, napravi taj excel file sa nekim dummy podacima, pa da ti pomognemo.

Pozdrav,
 
Hvala!
Upravo dok sam kucao post mi je upravo to sinulo, da u pomoćnim tabelama organizujem uslove po listama, pa da pozivanjem iz padajućeg menija ili kucanjem u ćeliju na neki način pozivam adekvatne formule.
Malo mi je sve još zbrkano, ali planiram da stavim na papir i razjasnim sebi neke ideje.
 
Ipak nisam uspeo da smislim univerzalno rešenje, ukrštene uslove sam razbacao po radnim listovima i tako kalkulišem datume.
Nije elegantno, ali mi završava posao.
 
Nazad
Vrh Dno