Forumi


Povratak   PC Ekspert Forum > Računala > Software > Aplikacije
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 20.03.2013., 20:04   #1
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
excel-vba-button

pozdrav svima,imam jedan problem ,pa ako može pomoć

imam nekoliko čelija u kojima su neki rezultati dobiveni if funkcijama,..htio bih napraviti zbroj višednevnih rezultata.......
zamislio sam to pomoću buttona koji bi zbrajao rezultate,pa me zanima pomoć oko naredba za taj button...

htio bih sljedeće npr.
rezultat iz A1 (if funkcije) da se zbraja u D1
rezultat iz A2 da se zbraja u D2 itd.

mislim da bi to moglo funkcionirati preko vba i butona,tako kad kliknem na button da se zbroji vrijednost iz A1 i D1 i da ta nova vrijednost (zbroj) zamijeni prijašnju vrijednost u D1....isto to i za A2 u D2 itd.

tako bi postigao da u čelijama D1,D2 ostaju rezultati zbrajanja,neovisno o tome što se nekad brišu i dobiju nove vrijednosti u A1,A2 ,a klikom na buton vrijednost se povećava i imao bih rezultat ukupne statistike.

neznam napisati vba naredbu za taj button,pa ako može pomoć oko toga ili neki drugi prijedlog
gorkix je offline   Reply With Quote
Staro 20.03.2013., 22:01   #2
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
neznam napisati vba naredbu za taj button,pa ako može pomoć oko toga ili neki drugi prijedlog
malo googlanja i prerada makroa (link)

- Kako pribrojiti broj postojećem broju pomoću VBA
IvanVk je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 20.03.2013., 22:56   #3
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
Citiraj:
Autor IvanVk Pregled postova
malo googlanja i prerada makroa
Ivane pretpostavljam po nicku da si mi već pomagao oko exela .

nagooglao sam se ovih dana,al nisam vidio ovaj link...

Hvala ti na pomoći jer mi baš tako nešto treba,.......

p.s.jedino ako se slučajno mogu koristiti nazivi čelija A1,D1 itd kod unosa šta će se zbrajati umjesto a = Worksheets("List1").Cells(1, 1).Value 'celija A1
zbog jednostavnosti,ako ne ,zadovoljan sam i sa ovom pomoći.

Zadnje izmijenjeno od: gorkix. 20.03.2013. u 23:14.
gorkix je offline   Reply With Quote
Staro 21.03.2013., 20:22   #4
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
nagooglao sam se ovih dana,al nisam vidio ovaj link...
Nisi ni mogao jer sam ga napravio radi tebe

Cells(1, 1) označava ćeliju A1 tj. sjecište (red1, stupac1) i tako mora biti
IvanVk je offline   Reply With Quote
Staro 21.03.2013., 23:07   #5
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
da nemaš mene izgubio bi motivaciju za nove tutoriale ......krenuo sam nešto praviti,a nisam skoro ništa znao o exelu,....na kraju sam završio izmeđuostalog zahvaljujući i tvojoj pomoći.........

što se ovog tiće ,da se ne mogu koristiti nazivi čelija A1 itd,..ok,...zadovoljavajuće mi je i ovako kako mora biti,......
gorkix je offline   Reply With Quote
Staro 22.03.2013., 00:31   #6
D1viry
Premium
Moj komp
 
D1viry's Avatar
 
Datum registracije: May 2010
Lokacija: Slavonija
Postovi: 2,066
Gle, može se izvest i sa A1, B10 i ostalim oznakama, ali komplicira kod poprilično. Vjeruj mi, radio sam to za neke ljude, ali nema ni smisla ni potrebe.
__________________
I'd rather have a bottle in front of me than a frontal lobotomy.
Pošten trgovac: 1,2,3,4,5,6
D1viry je offline   Reply With Quote
Staro 22.03.2013., 22:13   #7
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
nema veze,samo sam pitao ako može,....zadovoljan sam i sa ovim što je ivan napisao..
gorkix je offline   Reply With Quote
Staro 26.08.2013., 14:14   #8
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
trebao bih ako može još jedna formula,...
koristio sam (button) formulu za zbrajanje dvije čelije
...........................................
Sub DodajBrojZbroji()
' pribraja broj u celiji A1 (a) broju u celiji D1 (b)
' zbroj se rezultira u celiji D1
a = Worksheets("List1").Cells(1, 1).Value 'celija A1
b = Worksheets("List1").Cells(1, 4).Value 'celija D1
b = b + a
Worksheets("List1").Cells(1, 4).Value = b
'Worksheets("List1").Cells(1, 1).Value = "" 'brise vrijednost u A1
----------------------------------------------------------

pošto mi je sad to potrebno u većem opsegu,nekoliko desetaka stupaca,zanima me da li postoji formula da odmah izračuna sve čelije jednog stupca ili više stupaca i to za svaku čeliju posebno.

u prilogu (slici) sam malo pojasnio što bi želio,tako da ne moram za svaku čeliju posebno pisati naredbu

Zadnje izmijenjeno od: gorkix. 28.08.2013. u 19:24.
gorkix je offline   Reply With Quote
Staro 26.08.2013., 14:53   #9
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
trebao bih ako može još jedna formula,...
koristio sam (button) formulu za zbrajanje dvije čelije
Ne znam zašto insistiraš na VBA makronaredbi za zbrajanje kada imaš SUM formulu

Ako baš želiš pogledaj pri dnu link sa primjerom preko VBA koji je snimljen direktno u Excelu.
IvanVk je offline   Reply With Quote
Staro 26.08.2013., 21:16   #10
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
nisi me izgleda shvatio šta želim,......ovdje se radi o istom principu kao i kod tvog primjera zbroji broj na već postojeći u čeliji,......samo da ne moram pisati za svaku čeliju posebno,pitao sam dal može formula zbroji brojeve iz više čelija (slika-brojevi lijevo) na više čelija (brojevi desno) i da se ti desni uvećaju,i ne suma svih brojeva,..već svaka čelija posebno,........znaći iz primjera čelija b5 se pribraja čeliji h5...b6 pribraja h6...itd.....

trebam više desetaka takvih stupaca,pa za svaku posebnu čeliju je dugotrajno,a pošto su grupirani podaci (redovi,stupci).,možda može brže....
gorkix je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 26.08.2013., 22:22   #11
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
...ovdje se radi o istom principu kao i kod tvog primjera zbroji broj na već postojeći u čeliji
ufff
morat ćeš naći nekog tko aktivno programira u VBA

Ovo je primjer za prva dva reda ali to nije dobro jer ti imaš puno redova a uduplavanjem bi se jako puno povećao kod. Ne kažem da možda ne bi uspio riješiti ali bi mi trebalo puno vremena koje sada nemam. Ako ti se nitko ne javi probaj na nekom drugom forumu (da ih ne reklamiram)

Ovo ti je za prva dva reda tri stupca
Code:
Sub DodajBrojZbroji()

' pribraja broj u celiji B5 (a) broju u celiji H5 (b)
a = Worksheets("Sheet1").Cells(5, 2).Value 'celija B5
b = Worksheets("Sheet1").Cells(5, 8).Value 'celija H5
b = b + a
Worksheets("Sheet1").Cells(5, 8).Value = b
'------------------------------------------------------------------
' pribraja broj u celiji C5 (a) broju u celiji I5 (b)
c = Worksheets("Sheet1").Cells(5, 3).Value 'celija C5
d = Worksheets("Sheet1").Cells(5, 9).Value 'celija I5
d = d + c
Worksheets("Sheet1").Cells(5, 9).Value = d
'------------------------------------------------------------------
' pribraja broj u celiji D5 (a) broju u celiji J5 (b)
e = Worksheets("Sheet1").Cells(5, 4).Value 'celija D5
f = Worksheets("Sheet1").Cells(5, 10).Value 'celija J5
f = f + e
Worksheets("Sheet1").Cells(5, 10).Value = f
' pribraja broj u celiji B6 (a) broju u celiji H6 (b)
g = Worksheets("Sheet1").Cells(6, 2).Value 'celija B6
h = Worksheets("Sheet1").Cells(6, 8).Value 'celija H6
h = h + g
Worksheets("Sheet1").Cells(6, 8).Value = h
'------------------------------------------------------------------
' pribraja broj u celiji C6 (a) broju u celiji I6 (b)
h = Worksheets("Sheet1").Cells(6, 3).Value 'celija C6
i = Worksheets("Sheet1").Cells(6, 9).Value 'celija I6
i = i + h
Worksheets("Sheet1").Cells(6, 9).Value = i
'------------------------------------------------------------------
' pribraja broj u celiji D6 (a) broju u celiji J6 (b)
j = Worksheets("Sheet1").Cells(6, 4).Value 'celija D6
k = Worksheets("Sheet1").Cells(6, 10).Value 'celija J6
k = k + j
Worksheets("Sheet1").Cells(6, 10).Value = k
End Sub
IvanVk je offline   Reply With Quote
Staro 26.08.2013., 23:39   #12
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
Ivane,taj način znam od prije,...bilo je za jednu čeliju,ali samo dodajem kako si i ti sad
napravio,......baš sam to htio izbjeći jer imam puno čelija,......zasad je to jedini način koji znam.....a znam ga zahvaljujući tebi i u svakom slučaju bolje išta nego ništa........

sačekat ću još malo,pa ako nitko nezna,..morat ću se uhvatit posla......
gorkix je offline   Reply With Quote
Staro 27.08.2013., 10:51   #13
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Neznam sintaksu VBA, ali ovako napamet bih rekao da se ono što vam treba zove - petlja. Ako mjenjaš i stupce i retke, onda dvije ugnježđene for petlje.
"VBA for loop" u google.
__________________
"I intend to live forever. So far, so good."

job security - example
rodney je offline   Reply With Quote
Staro 27.08.2013., 18:12   #14
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
došao sam na jednu ideju za koju možda ima riješenje,.........radi se o selektiranju određenog raspona čelija ,kopiranje njih ,te posebno lijepljenje i zbrajanje sa drugim čelijama,.........na slici sam pojasnio kako to funkcionira i dali se za to može napisati jednostavna komanda za button.......i to bi bilo riješenje za moje pitanje....

Zadnje izmijenjeno od: gorkix. 20.03.2016. u 14:56.
gorkix je offline   Reply With Quote
Staro 27.08.2013., 18:56   #15
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
i to bi bilo riješenje za moje pitanje....
Probaj ovaj kod (primjer imaš ovdje)
Code:
Option Explicit

Sub Pribroji()
    Range("B5:D23").Select
    Selection.Copy
    Range("H5").Select 'prva ćelija u koju se pribrajaju brojevi iz B,C i D stupaca)
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False
    Range("B5").Select
End Sub

Zadnje izmijenjeno od: IvanVk. 27.08.2013. u 19:20.
IvanVk je offline   Reply With Quote
Staro 27.08.2013., 21:46   #16
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
odlično je,........hvala puno na pomoći........
gorkix je offline   Reply With Quote
Staro 28.08.2013., 19:25   #17
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
evo mene Ivane ponovo....

ovo sam probao na obično upisane brojeve i funkcionira odlično,.......ali danas kad sam pokušao u excelu gdje su mi brojevi dobijeni pomoću if naredbi to ne radi,.....ako možeš malo modificirati komandu za buton ,da koristi vrijednosti čelija,a ne if funkciju.......slika u prilogu......

Zadnje izmijenjeno od: gorkix. 22.03.2016. u 22:59.
gorkix je offline   Reply With Quote
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
Staro 29.08.2013., 22:00   #19
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
Citiraj:
Autor IvanVk Pregled postova
Tako je to kada se ne postavi izvorni file (ne slika)
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.
Ivane izvorni fajl je velik 38mb......a i osobne je prirode......

stvar je da pojednostavim ovakva

na slici su recimo lijevo označene čelije u kojima su dobijeni rezultati pomoću if funkcija.......i ti rezultati se trebaju pribrojiti čelijama na desnoj strani,.....ručno to ide tako da se lijevo čelije oznaće stisne kopiraj ,oznaći se prva čelija na desnoj strani i stavi točka na vrijednosti i zbroji i ok,....mora tako jer ako se ne stavi na vrijednosti on prekopira formule iz lijeve strane,........
i za to sam pitao komandu za button,.......
a probat ću i ovaj način koji si napravio iako na prvi pogled vidim da kod tebe je primjer gdje se obični brojevi dodaju brojevima sa if funkcijama,..

meni treba obratno..........
gorkix je offline   Reply With Quote
Staro 30.08.2013., 14:32   #20
IvanVk
Registered User
 
IvanVk's Avatar
 
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
Citiraj:
Autor gorkix Pregled postova
Ivane izvorni fajl je velik 38mb......a i osobne je prirode......
To nema veze. Uvijek se može obrisati višak i ostaviti 10 redova a uz to promijeniti vrijednosti, naslove, nazive, imena itd ...
Na taj način brže se dolazi do krajnjeg cilja i pomoći.

Probao sam i ovaj način da su mi IF funkcije u lijevoj strani i da se pribrajaju vrijednosti na desnu stranu gdje su fiksni brojevi i ja ne vidi nikakav problem. No dobro probaj ovaj novi VBA valjda će ti biti od pomoći, a ako ne, sorry ja više nemam ideja.
pozz
IvanVk je offline   Reply With Quote
Staro 01.09.2013., 18:59   #21
gorkix
Registered User
Moj komp
 
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
nisam još probao jer nemam vremena,......ali u svakom slučaju hvala na pomoći.......
gorkix je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori


Uređivanje

Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na