|
[ iognjen @ 28.04.2007. 17:38 ] @
| Pozdrav,
Da li bi neko mogao da mi objasni na nekom jednostavnom primeru pravljenje user forma uz pomoc VB. Znaci postupno, šta se prvo radi. Da li se nacrta oblik forme, a potom piše kod? Hteo bih da napravim User Form pomoću kojeg ću unositi podatke u tabelu excela red po red, naravno u više kolona. Ali za početak neka to bude primer za jednu. Nadam se da ste razumeli moj problem. U svakom slučaju unapred se zahvaljujem!!
|
[ steve585 @ 29.04.2007. 10:59 ] @
Ovo je moguće napraviti u samom Excel-u. Otvori excel->iz kontrolne trake izaberi Visual Basic tools->kreiraj jedno komandno dugme na Sheet1->klikni na Visual Basic Editor, te upiši kod:
Code: Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
U Visual Basic Editor-u klikni na Insert->UserForm
Na UserForm napravi npr. dva TextBox-a (TextBox1 i TextBox2) i CommandButton (cmdUnos).
Još je potrebno izvršiti unos koda za komadno dugme cmdUnos
Code: Private Sub cmdUnos_Click()
Sheet1.Cells(2,2)=TextBox1.Text
Sheet1.Cells(2,3)=TextBox2.Text
End Sub
Edit : Dodati code tagovi
[Ovu poruku je menjao Marko_L dana 09.05.2007. u 21:43 GMT+1]
[ iognjen @ 29.04.2007. 21:36 ] @
Poz,
Ovo je super, hvala steve585. Ali ja bih išao još malo dalje, treba mi prelazak u idući red sa brisanjem stanja formulara. Što će reći u obrazac unesem npr brojeve 1 i 2, stisnem ok on unese to u red, ja potom pritisnem taster npr clear form i unosim podatke za novi red itd....
[ Jpeca @ 30.04.2007. 13:24 ] @
[ steve585 @ 06.05.2007. 09:31 ] @
Da li ti je tutorijal pomogao da središ problem?
[ iognjen @ 06.05.2007. 21:11 ] @
http://static.elitesecurity.org/coolsquare.gif
@steve 585
Hvala na pitanju, ovaj primer je nesto sto liči na rešenje mog problema, samo što je to celina koju moram da skontam deo po deo. Meni je bilo mnogo lakše uz onaj tvoj primer da shvatim kako to radi. Pokušavam da nađem još neke primere na netu pa ih polako raskrckavam. U svakom slučaju nastavak tečaja koji si ti započeo je dobrodošao, so if you wish to continue ....
U svakom slučaju hvala!!!
[ steve585 @ 06.05.2007. 22:58 ] @
Da bi unosi podatke red po red potrebno je da ispitaš koji je posljednji red u koji je upisana određena vrijednost. Za ovo ti je najbolje odrediti jednu kolonu u koju će se unositi vrijednost, nešto kao autonumber. Dakle svaki put kada se klikne na dugme cmdUnos izvršiti će se unos vrijednosti u autonumber ćeliju.
Za ovo ti je potreban sljedeći kod:
Pretpostavimo da je kolona A rezervirana za unos autonber vrijednosti, te da si u ćeliju ("A1") unjeo naziv kolone "AutoNum"
Code: Private sub cmdUnos ()
***********************************************
//Potrebno je ispitati u koliko redova je već napravljen unos
***********************************************
i=1
Do while sheet1.cells(i, 1)<>""
i=i+1
Loop
**********************************************************
//Sada kada znaš koliko redova posjeduje unos možeš pristupiti unosu u ćelije
**********************************************************
Sheet1.cells(i, 2)=Textbox1.Text
Sheet1.cells(i,3)=Textbox2.Text
End Sub
Kao što vidiš bitno ti je naći vrijednost promjenjive i.
Drugi način za ovo je da kreiraš jedan npr. hidden TextBox (Name=hidtxt) čija će inicijalna vrijednost biti 1.
U tom slučaju kod za komandno dugme unos izgledao bi ovako:
Code: Private sub cmdUnos()
i=val(hidtxt)
Sheet1.cells(i+1,2)=Textbox1.Text
Sheet1.cells(i+1,3)=Textbox2.Text
j=i+1
hidtxt.Text=j
End Sub
To je to. Ti sad vidi šta ti više odgovara.
Edit : Dodati code tagovi
[Ovu poruku je menjao Marko_L dana 09.05.2007. u 21:44 GMT+1]
[ planerso @ 09.05.2007. 05:53 ] @
Pozdrav,
Kako u User Fomu postaviti dva Combobox-a, prvi i drugi, tako da kada se odabere neka stavka u prvom, odmah se menja ponuda izbora u drugom u zavisnosti od izabrane stavke u prvom. Npr u prvom izaberem opštinu, a u drugom dobijem samo izbor mesta koja pripadaju izabranoj opštini.
Hvala!
[ steve585 @ 09.05.2007. 19:18 ] @
Možeš koristiti Select Case za granjanje.
Npr.
Sam si rekao da imaš dva ComboBox-a.
Code: Private Sub ComboBox1_Click()
Select Case ComboBox1.ListIndex
Case 0
With ComboBox2
.AddItem "Grad1"
.AddItem "Grad2"
.AddItem "Grad3"
End With
Case 1
With ComboBox2
.AddItem "Klub1"
.AddItem "Klub2"
End With
End Select
End Sub
Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ComboBox1.Clear
ComboBox2.Clear
ComboBox1.AddItem "Opstina"
ComboBox1.AddItem "Klub"
End Sub
Edit : Dodati code tagovi
[Ovu poruku je menjao Marko_L dana 09.05.2007. u 21:42 GMT+1]
[ planerso @ 10.05.2007. 08:35 ] @
Pozdrav,
zahvaljujem na trudu, ali mi je potrebna pomoc. Naime, ja sam pravio combobox-ove tako sto sam u tabeli u excelu otkucao sve clanove niza, obelezio sam ih i dao ime tom nizu za obe liste. Te nazive sam stavio u RowSource svakog Comboboxa, ovaj nacin koji si mi poslao u ovom slucaju ne funkcionise. Sta dalje?
Ako mozes da mi das resenje da se uklopis u ovu situaciju u kojoj sam, ili mi preporuci nacin na koji da pripremim Comboboxove da bi funkcionisalo ovo tvoj vec ponudjeno resenje.
Hvala.
[ steve585 @ 10.05.2007. 10:02 ] @
Molim te pošalji screenshot što si dosada napravio.
[ planerso @ 10.05.2007. 12:25 ] @
Evo ga ceo fajl, user form je u visual basicu, jos ga nisam linkovao komandnim dugmetom. Pored ostalog imam problem i sa tasterom clear, koji bas i nece da radi. Ako mozes koriguj taj deo. Unapred se zahvaljujem. Liste za Combobox su kucane belim tekstom tako da se nevide odmah, ali ja mislim da ces ih lako naci. Ako jos nesto treba javi. Hvala.
[Ovu poruku je menjao planerso dana 10.05.2007. u 13:35 GMT+1]
[ steve585 @ 10.05.2007. 19:28 ] @
OK! Ono što si želio trebalo bi da sada radi. Naravno napravio sam određene promjene i to:
1)
Kreirane su četiri kolone Apatin, Kozara, Subotica, Odžaci. U kolonu Apatin ubacio sam naselja iz gazdinstva Apatin, u kolonu Kozara ubacio sam naselja iz gazdinstva Kozara itd... (Bar mislim da sam ih dobro razvrstao, ti svakako provjeri i razvrstaj to na pravi način) Zašto? Prirodno se nameće da su gazdinstva domene naselja, te ih tako treba postaviti lakše je kasnije manipulirati podacima.
2) Za drugi Combo izbacio sam RowSource, jednostavno nije bio više potreban
3) Ovaj kod je dodan na drugi ComboBox:
Private Sub gj_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
gj.Clear
Select Case uprava.ListIndex
Case 0
i = 1
Do While Sheet4.Cells(i, 134) <> ""
i = i + 1
Naselja = Sheet4.Cells(i, 134)
gj.AddItem Naselja
Loop
Case 1
i = 1
Do While Sheet4.Cells(i, 135) <> ""
i = i + 1
Naselja = Sheet4.Cells(i, 135)
gj.AddItem Naselja
Loop
Case 2
i = 1
Do While Sheet4.Cells(i, 136) <> ""
i = i + 1
Naselja = Sheet4.Cells(i, 136)
gj.AddItem Naselja
Loop
Case 3
i = 1
Do While Sheet4.Cells(i, 137) <> ""
i = i + 1
Naselja = Sheet4.Cells(i, 137)
gj.AddItem Naselja
Loop
End Select
End Sub
4) Brisanje ti nije išlo zato što si napisao:
"Textbox" umjesto "TextBox" malo b, veliko B
"Combobox" umjesto "ComboBox" malo b, veliko B
I to je to. Ovo sam probao i sada radi. Pozdrav!
Poslati ću i fajl u novoj poruci
[ planerso @ 11.05.2007. 06:01 ] @
Svaka cast na trudu i vremenu, mnogo hvala. Ovo mi je bas pomoglo. Ja cu i dalje nastaviti sa radom, pa ako bude jos pitanja znam kome cu da se obratim. Jos jedno hvala Steve585.
[ 3okc @ 15.07.2007. 17:24 ] @
Citat:
[Excel] User form pomocu VB 28.04.2007. u 18:38
Pozdrav,
Da li bi neko mogao da mi objasni na nekom jednostavnom primeru pravljenje user forma uz pomoc VB. Znaci postupno, šta se prvo radi. Da li se nacrta oblik forme, a potom piše kod? Hteo bih da napravim User Form pomoću kojeg ću unositi podatke u tabelu excela red po red, naravno u više kolona. Ali za početak neka to bude primer za jednu. Nadam se da ste razumeli moj problem. U svakom slučaju unapred se zahvaljujem!!
Citat:
Re: [Excel] User form pomocu VB 29.04.2007. u 11:59
Ovo je moguće napraviti u samom Excel-u. Otvori excel->iz kontrolne trake izaberi Visual Basic tools->kreiraj jedno komandno dugme na Sheet1->klikni na Visual Basic Editor, te upiši kod:
Ne bih da "kvarim žurku".. ;-)
ali ako već nije neophodno pisati rešenje u VB, Excel već ima ovaj alat, zove se Data Form.
Iz menija Data klikneš na Form..., i ako već imaš tabelu sa podacima - sve lepo radi. U slučaju da krećeš od nule, pre nego što ga aktiviraš moraš kreirati zaglavlja tabele i kursor ti mora biti "u blizini" zaglavlja (znači na samoj ćeliji ili ne više od 1 ćelije izvan opsega zaglavlja), odgovoriš na pitanje sa YES (hoćeš da se koristi to zaglavlje) i možeš da počneš sa unosom.
Postoji i mogućnost brze pretrage/filtriranja unetih podataka u odnosu na jedan ili više poznatih.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|