|
![]() |
#1 |
Registered User
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 |
![]() |
![]() |
![]() |
#2 | |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
Citiraj:
- Kako pribrojiti broj postojećem broju pomoću VBA |
|
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#3 |
Registered User
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
|
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. |
![]() |
![]() |
![]() |
#4 |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
|
![]() |
![]() |
![]() |
#5 |
Registered User
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
|
da nemaš mene izgubio bi motivaciju za nove tutoriale ![]() što se ovog tiće ,da se ne mogu koristiti nazivi čelija A1 itd,..ok,...zadovoljavajuće mi je i ovako kako mora biti,...... |
![]() |
![]() |
![]() |
#6 |
Premium
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. |
![]() |
![]() |
![]() |
#8 |
Registered User
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. |
![]() |
![]() |
![]() |
#9 | |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
Citiraj:
Ako baš želiš pogledaj pri dnu link sa primjerom preko VBA koji je snimljen direktno u Excelu. |
|
![]() |
![]() |
![]() |
#10 |
Registered User
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.... |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
#11 | |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
Citiraj:
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 |
|
![]() |
![]() |
![]() |
#12 |
Registered User
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...... |
![]() |
![]() |
![]() |
#13 |
only fool, not a horse
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. |
![]() |
![]() |
![]() |
#14 |
Registered User
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. |
![]() |
![]() |
![]() |
#15 |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
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. |
![]() |
![]() |
![]() |
#17 |
Registered User
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. |
![]() |
![]() |
![]() |
#18 |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
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 |
![]() |
![]() |
![]() |
#19 | |
Registered User
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
|
Citiraj:
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.......... |
|
![]() |
![]() |
![]() |
#20 |
Registered User
Datum registracije: Nov 2005
Lokacija: -
Postovi: 194
|
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 |
![]() |
![]() |
![]() |
#21 |
Registered User
Datum registracije: Nov 2008
Lokacija: -
Postovi: 119
|
nisam još probao jer nemam vremena,......ali u svakom slučaju hvala na pomoći....... |
![]() |
![]() |
|
|
Oglas
|
|
![]() |
Uređivanje | |
|
|