View Single Post
Staro 29.08.2013., 15:42   #18
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
evo mene Ivane ponovo.......slika u prilogu......
Tako je to kada se ne postavi izvorni file (ne slika) sa realnim stanjem i činjenicam
A da ne govorim o organizaciji podataka i zahtjevu za nekakav određeni rezultat, jedno rješenje može biti problem za drugo itd ...

Ovo neće ići kako si zamislio. Bar ja ne znam model rješenja na ovaj način kako si ti zamislio. (drugi puta postavi realan primjer za download, da se vidi stvarna činjenica da bi ti netko mogao pomoći
Na ovaj način ako imaš nekakav rezultat dobiven preko funkcije VBA kod je isti (bar kod mene u mojim probama) a formula se uvijek povećava (možda zbog toga što nemam uvid u tvoj realan izvorni file i stvarnu situaciju).
Tu sada ima još jedan eventualni problem (ne znam jer nemam uvid u tvoj original file). Kažeš da imaš funkciju kojom si dobio neke brojeve (koje u kojem stupcu i kakva je funkcija???), ta funkcija ako se nalazi u stupcima H, I i J će biti obrisana jer će VBA macro na njeno mjesto direktno pribrojiti brojeve iz stupaca B, C i D i prikazati samo rezultat.

Zbog toga sam si dao malo truda radi tebe i tvog problema i uz pomoć drugih pronašao rješenje a na ovom linku imaš gotovu datoteku sa primjerom za download i svim objašnjenjima da ovdje ne pišem prevelike litanije.
Vjerujem da znaš da nakon pokretanja VBA makronaredbe nema mogućnosti UNDO buttona. Ako npr. imaš nekoliko stotina redova ili masu podataka i pogriješiš u brzini, nema korak unazad. Tako da ako negdje pogriješiš može biti veliki problem jer ne znaš kako se vratiti nazad na prethodno stanje. Zbog toga je dobro kopirati stanje na kojem radiš da imaš u rezervi.
Na već postojećem linku za download dodao sam primjer sa novim VBA (Sheet2 i Module2) a u tom VBA ima jedan dodatak za kopiranje postojećeg Sheeta prije nego li se macro izvrši, tako da imaš kopiju stanja korak prije. Naravno ove kopije možeš naknadno izbrisati. Taj dio VBA koda je pod komentarima pa ako ga želiš koristiti izbriši apostrof ispred naredbene linije.

Code:
       ActiveWorkbook.Sheets("Sheet2").Copy _
       after:=ActiveWorkbook.Sheets("Sheet2") 
'zbog nemogućnosti UNDO vrši se kopiranje Sheeta2 prije izvršavanja makronaredbe
    Sheets("Sheet2").Select 'pozicioniranje na bazni Sheet2
Nadam se da ćeš se snaći. Toliko od mene, pozz
IvanVk je offline   Reply With Quote