Bosna i Hercegovina



Avko Offline
Super Moderator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,408


Subject: Table Excel VBA
U excelu mozemo odrediti Table1, Table2...
To su tabele u koje mozemo staviti odredene sheet(listove) ili dijelove listova
npr.
Table1 = Sheets("List2").Range("C5:G5")
'u Table1 stavili smo iz List2 rang od C5 do G6, znaci celije C5,D5,E5,F5,G5 i C6,D6,E6,F6,G6
Table2=Sheets("List3").Range("A1:B10") - u Table2 stavili iz List3 rang A1:B10

pitanje:
Kada radim sa tabelama sve radim sa userform1 ili sa List1, mene zanima kako trebam ispravno napisati naredbu da mi uzima Cells(1,1) iz Table1, a ne kao meni uzme Cells(1,1) sa List1
ja sam napisao nesto ovako:
UserForm1.ListBox1.AddItem Cells(red, stupac) i on meni uzme iz List1 celiju(1,1)
probao sam Table1.Cells(1,1) ali ne prihvaca to
vazno je napomenuti da ce Table2 mijenjati po listovima, nekad ce biti List3 a nekad List4,List5 ovisi
Table1 uzme vrijednost neke celije pa onda na osnovu toga odredim Table2
i izvrsim Application.WorksheetFunction.VLookup(vrijednost, Table2, 2, False)
neznam jesam dobro objasnio problem? Helpless
Newton laže! Lake padaju brže!
↑  ↓

zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,299


Subject: Re: Table Excel VBA
Ja nemogu bas da dokucim sta ti je cilj.
Ako ti nije tesko da stavis neki primjer i napises sta zelis da iscitas.
Pozdrav
↑  ↓

Avko Offline
Super Moderator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,408


Subject: Re: Table Excel VBA
sve sam ovo napisao u modulu1 kao klasicni basic sa jednom procedurom sub proba end sub
u njemu nisam imao formu i nisam koristio procedure u drugim modulima nego sam klasicno pozivao potprograme postupkom gosub pot1, ili gosub pot2 itd znaci klasicni kod basica i to je radilo.
Problemi su nastali kada sam htio pisati kod kao u vb6 sa procedurama i modulima

Prilozi:
Informacije o fajlu: rar  proba.rar
Preuzimanja: 6
Veličina: 35.10 KB


Newton laže! Lake padaju brže!
↑  ↓

zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,299


Ocjena: Ocjena:100 Subject: Re: Table Excel VBA
Ja ovdje ne vidim nista sto ti nisi mogao uraditi ili mozda ne vidim tvoju koncepciju.
Mnogo si ti toga naucio da bi se lomatao sa exelom i user formama.
Bolje da si ovo radio u klasicnom Vb i sa nekom bazom napr. mdb.
Znaci podaci idu u neku mdb bazu a forme i ostalo pravis u Vb-u.
Jedna mala zamjerka ovdje sto si pravio ovo je sto si podatke izbacio u list box a bolje je u neki grid.
Mozes dodati desnim klikom na Talbox.

E sad sto ja mislim da ti nedostaje.
Nemoj se ljutiti ako si vec nesto znao jer ja to samo pretpostavljam.
1-Objekti.
Ti ovdje imas podignute dvije app. i to ecel Workbook i VbUserform.
Znaci to su dva razlicita objekta.
Ukoliko ih ne setujes nemozes komunicirati sa njim sem u njihovoj unutresnjosti.
za Workbook to su sitovi i komandni taster koji si postavio a za UserForm to cu combo boxovi.
Sitovi mogu imati i svoje module.
Ukoliko pises u tim modulima procedure one imaju doseg tog objekta a ne u cijeloj app.
ukoliko otvoris neki Modul napr. module1 u njega mozes pisati procedure koje imaju doseg (domet) na nivou cijele tvoje app. znaci mozes procedure pozivati od bilo gdje.

E sad ima tu jos nesto a to je doseg same procedure a to imas lijepo opisanu u vb skoli.
doseg- dokle doseze odakle je mozes pozvati

Ukoliko pisemo:
sub Imeprocedure (parametar1,parametar2)
sub- znaci da joj je doseg samo u okviru tog objekta odnosno toog modula.

Ukoliko napisemo:
Public Imeprocedure (parametar1,parametar2)

sada ima doseg u cijeloj app.

Ukoliko ne napisemo nikakav prefiks sto ja cesto radim onda ce isto imati domet u cijeloj app.
Ja obicno tako pisem na forum pa ostavljam korisniku da stavi sta hoce odnosno da prilagodi sebi.

to bi izgledalo ovako:
Imeprocedure (parametar1,parametar2)

da bi iz procedure dosegli do nekog objekta moramo ga setovati.
Kada setujemo objekat onda nam je prepoznatljiv kao i kontrole na njemu u nasem jednom slucaju to su siti a u drugom na formi to su combo boksovi i drugo.

Eto nadam se da sam malo pomogao.
Ukoliko se nigdje zapeo tacno na odredjenom mjestu u kodu onda naznaci to mjesto pa cemo nadam se rijesiti.
Pozdrav
↑  ↓

Avko Offline
Super Moderator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,408


Subject: Re: Table Excel VBA
hvala na odgovoru
danas sam citao vb (dosao do strane 7) i vidio da ima o procedurama i for each petlji takode sam malo proucavao prilog od NedimZ. Zakljucio sam da je najbolje da pocnem uciti access, a to mi je vec prije rekao gjoreski.
Od ovoga cu odustati jer je samo gubljenje vremena, a nista pametno necu nauciti.
ovo mi nije jasno:
Ti ovdje imas podignute dvije app. i to ecel Workbook i VbUserform.
, trenutno kad citam no kada cu malo proanalizirati bice mi jasnije. Ne treba objasnjavat.
a ovo mi je jasno:
Ukoliko pisemo:
sub Imeprocedure (parametar1,parametar2)
sub- znaci da joj je doseg samo u okviru tog objekta odnosno toog modula.

Ukoliko napisemo:
Public Imeprocedure (parametar1,parametar2)
sada ima doseg u cijeloj app.
Ukoliko ne napisemo nikakav prefiks sto ja cesto radim onda ce isto imati domet u cijeloj app.


do sada sam koristio public varijabla i mislio sam da time imam doseg u cijeloj app a i jesam, no nisam znao i da procedure mogu biti public, mada sam to procitao u VB skoli i moja je greska sto nisam zapamtio.

Odlicno objasnjenje.
5+
sjedi
Newton laže! Lake padaju brže!
↑  ↓

Avko Offline
Super Moderator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,408


Subject: Re: Table Excel VBA
Citat od zxz:

1-Objekti.
Ti ovdje imas podignute dvije app. i to ecel Workbook i VbUserform.
Znaci to su dva razlicita objekta.
Ukoliko ih ne setujes nemozes komunicirati sa njim sem u njihovoj unutresnjosti.
za Workbook to su sitovi i komandni taster koji si postavio a za UserForm to cu combo boxovi.
Sitovi mogu imati i svoje module.
Ukoliko pises u tim modulima procedure one imaju doseg tog objekta a ne u cijeloj app.
ukoliko otvoris neki Modul napr. module1 u njega mozes pisati procedure koje imaju doseg (domet) na nivou cijele tvoje app. znaci mozes procedure pozivati od bilo gdje.
ovo mi sa setovanjem uopce nije jasno
sada sam usljed istrazivanja nesto pobrkao tako da mi umjesto Range automatski promijeni na range (veliko slovo u malo)
Nemogu napisati u List1.code da mi selektira rang iz List2 tj

dim celija as range
dim rang as range
set rang=sheets("List2").Range("C2:H2")
For Each celija in rang
if celija='neki uvjet' then
kod
end if
next celija
Newton laže! Lake padaju brže!
↑  ↓

zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,299


Subject: Re: Table Excel VBA
Citat:
ovo mi sa setovanjem uopce nije jasno

kada nesto setujes(neki object) znaci da si ga registrovao i moze poslije trazizi bilo kakave podatke o njemu.
Citat:
sada sam usljed istrazivanja nesto pobrkao tako da mi umjesto Range automatski promijeni na range (veliko slovo u malo)
Negdje imas u kodu tip variable upisan malim range

Dim celija As Object
Dim rang As Range
Set rang = Sheets("List2").Range("C2:H2")
For Each celija In rang
If celija.Value = "neki uvjet" Then
'kod
End If
Next celija

moras reci sta hoces od celije koji podatak.
U tvom slucaju vrijednost vjerovatno.
Pozdrav
↑  ↓

 Podijeli  Dodaj odgovor Stranice (1): 1


All times are GMT +01:00. Current time: 26.05.2017-23:37.