Korištenje obrazaca u VBA daje vam prazno platno za dizajn i uređenje obrazaca prema vašim potrebama u bilo kojem trenutku. Naučimo uz Download.vn kako stvoriti automatske obrasce za unos podataka u Excel VBA !
Stvorite korisnički obrazac koristeći Excel VBA
Otvorite novu Excel radnu knjigu i izvedite nekoliko preliminarnih koraka prije nego počnete stvarati obrazac za unos podataka.
Spremite radnu knjigu sa željenim nazivom, ne zaboravite promijeniti vrstu datoteke u Excel radna knjiga s omogućenim makronaredbama.
Dodajte 2 lista ovoj radnoj knjizi sa sljedećim nazivima:
- List1 : Dom
- Sheet2 : Studentska baza podataka
Naravno, možete im mijenjati imena kako želite.
Na početnom listu dodajte gumb za kontrolu makronaredbe korisničkog obrasca. Idite na karticu Razvojni programer > kliknite gumb na padajućem popisu Umetanje . Postavite ovaj gumb bilo gdje na proračunskoj tablici.
Nakon što postavite gumb, preimenujte ga. Desnom tipkom miša kliknite na nju > kliknite Novo da priložite makronaredbu koja prikazuje obrazac.
Unesite sljedeći kod u prozor uređivača:
Sub Button1_Click()
UserForm.Show
End Sub
Sa spremnim početnim listom i bazom podataka učenika , vrijeme je da dizajnirate korisnički obrazac. Idite na karticu Razvojni programer > kliknite Visual Basic da biste otvorili uređivač . Alternativno, možete pritisnuti ALT+F11 da otvorite prozor uređivača.
Pritisnite karticu Umetanje i odaberite Korisnički obrazac . Korisnički obrazac je spreman za korištenje. Uz ovaj obrazac otvara se popratni alatni okvir koji sadrži sve alate potrebne za dizajn izgleda.
Iz ovog okvira s alatima odaberite Okvir . Povucite ga na korisnički obrazac i promijenite mu veličinu.
U (ime) možete promijeniti naziv ovog okvira. Za prikaz imena na sučelju, možete promijeniti ime u stupcu Opis .
Zatim odaberite Label iz okvira s alatima i umetnite 2 naljepnice u ovaj okvir. Preimenujte ime u Broj prijave , a drugo ime u ID studenta .
Primijenite isti postupak preimenovanja preko Caption u Svojstvima . Provjerite jeste li odabrali odgovarajuću oznaku prije preimenovanja.
Zatim umetnite 2 tekstualna okvira u okvir za naljepnice. Oni će se koristiti za bilježenje korisničkih unosa. Promijenite nazive 2 tekstualna okvira putem stupca (Naziv) u Svojstvima na sljedeći način:
- Textbox1 : txtApplicationNo
- Textbox2 : txtStudentID
Dizajn informacijskog okvira za studente
Umetnite okomiti okvir i dodajte 10 oznaka i 10 tekstnih okvira. Preimenujte oznaku na sljedeći način:
- Oznaka3 : Ime
- Oznaka 4 : Dob
- Oznaka5 : Adresa
- Oznaka6 : Telefon
- Oznaka7 : Grad
- Oznaka8 : Država
- Oznaka9 : Datum rođenja
- Oznaka10 : poštanski broj
- Oznaka11 : Nacionalnost
- Oznaka12 : Spol
Umetnite odgovarajući tekstualni okvir pored ovih oznaka, umetanjem iz dva okvira gumba opcija iz alatne kutije korisničkog obrasca pored oznake spola. Promijenite njihova imena u Muško i Žensko (po narudžbi).
Dizajnirajte detaljan okvir tečaja
Dodajte još jedan okvir okomito i umetnite 6 naljepnica, 6 tekstualnih okvira koji odgovaraju svakoj naljepnici. Preimenujte naljepnicu na sljedeći način:
- Oznaka13 : Naziv tečaja
- Oznaka14 : ID tečaja
- Oznaka15 : Datum početka upisa
- Oznaka16 : Datum završetka upisa
- Oznaka17 : Trajanje tečaja
- Oznaka18 : Odjel
Dizajn okvira s detaljima plaćanja
Umetnite novi okvir, dodajte novu oznaku i preimenujte je u "Želite li ažurirati podatke o plaćanju?" Umetnite 2 gumba opcija ; preimenujte ih u Da i Ne .
Slično, dodajte novi okvir koji sadrži 2 dodatne oznake i 2 kombinirana okvira. Preimenujte oznaku na sljedeći način:
- Oznaka19 : Uplata primljena
- Oznaka 20 : Način plaćanja
Dizajn navigacijske ploče
U zadnjem okviru dodajte 3 gumba iz okvira s alatima koji sadrže kod za postavljanje obrazaca. Preimenujte gumbe na sljedeći način:
- Button1 : Spremi pojedinosti
- Button2 : Obriši obrazac
- Tipka3 : Izlaz
Napišite automatski kod obrasca: Gumb za spremanje informacija
Dvaput kliknite gumb Spremi detalje . U sljedećem modulu umetnite sljedeći kod:
Private Sub CommandButton2_Click()
‘declare the variables used throughout the codes
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long
'Add validations to check if character values are being entered in numeric fields.
If VBA.IsNumeric(txtApplicationNo.Value) = False Then
MsgBox "Only numeric values are accepted in the Application Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtStudentID.Value) = False Then
MsgBox "Only numeric values are accepted in the Student ID", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtAge.Value) = False Then
MsgBox "Only numeric values are accepted in Age", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtPhone.Value) = False Then
MsgBox "Only numeric values are accepted in Phone Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(Me.txtCourseID.Value) = False Then
MsgBox "Only numeric values are accepted in Course ID", vbCritical
Exit Sub
End If
'link the text box fields with the underlying sheets to create a rolling database
Set sht = ThisWorkbook.Sheets("Student Database")
'calculate last populated row in both sheets
lastrow = sht.Range("a" & Rows.Count).End(xlUp).Row + 1
'paste the values of each textbox into their respective sheet cells
With sht
.Range("a" & lastrow).Value = txtApplicationNo.Value
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName.Value
.Range("d" & lastrow).Value = txtAge.Value
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress.Value
.Range("h" & lastrow).Value = txtPhone.Value
.Range("i" & lastrow).Value = txtCity.Value
.Range("j" & lastrow).Value = txtCountry.Value
.Range("k" & lastrow).Value = txtZip.Value
.Range("l" & lastrow).Value = txtNationality.Value
.Range("m" & lastrow).Value = txtCourse.Value
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart.Value
.Range("p" & lastrow).Value = txtenrollmentend.Value
.Range("q" & lastrow).Value = txtcourseduration.Value
.Range("r" & lastrow).Value = txtDept.Value
End With
sht.Activate
'determine gender as per user's input
If optMale.Value = True Then sht.Range("g" & lastrow).Value = "Male"
If optFemale.Value = True Then sht.Range("g" & lastrow).Value = "Female"
'Display a message box, in case the user selects the Yes radio button
If optYes.Value = True Then
MsgBox "Please select the payment details below"
Else:
Exit Sub
End If
End Sub
Objašnjenje koda u automatiziranom obliku:
Tekstni okviri uključuju tekstualne i numeričke vrijednosti, tako da morate ograničiti korisnički unos. Broj prijave, ID učenika, dob, telefon, ID tečaja i trajanje tečaja sadržavat će samo brojeve, a ostatak će sadržavati tekst.
Koristeći naredbu IF , kôd pokreće skočni prozor s pogreškom ako korisnik unese znak ili tekstualnu vrijednost u bilo koje numeričko polje.
Budući da postoji provjera pogreške, morate povezati tekstne okvire s ćelijama na radnom listu.
Varijable lastrow izračunavaju zadnji ispunjeni redak i pohranjuju vrijednost unutra za fleksibilnu upotrebu.
Na kraju, te se vrijednosti lijepe u tekstni okvir na povezanom Excel listu.
Kodirajte brisanje obrasca i gumb za izlaz
U gumb za brisanje trebate napisati kod koji briše trenutne vrijednosti iz obrasca korisnika na sljedeći način:
With Me
.txtApplicationNo.Value = ""
.txtStudentID.Value = ""
..txtName.Value = ""
.txtAge.Value = ""
.txtAddress.Value = ""
.txtPhone.Value = ""
.txtCity.Value = ""
.txtCountry.Value = ""
.txtDOB.Value = ""
.txtZip.Value = ""
.txtNationality.Value = ""
.txtCourse.Value = ""
.txtCourseID.Value = ""
.txtenrollmentstart.Value = ""
.txtenrollmentend.Value = ""
.txtcourseduration.Value = ""
.txtDept.Value = ""
.cmbPaymentMode.Value = ""
.cmbPayment.Value = ""
.optFemale.Value = False
.optMale.Value = False
.optYes.Value = False
.optNo.Value = False
End With
U gumb za izlaz unesite sljedeći kod u obrazac korisnika:
Private Sub CommandButton5_Click()
Unload Me
End Sub
U posljednjem koraku morate unijeti posljednjih nekoliko dijelova koda kako biste stvorili padajuće vrijednosti za kombinirani okvir (u okviru za naplatu).
Private Sub UserForm_Activate()
With cmbPayment
.Clear
.AddItem ""
.AddItem "Yes"
.AddItem "No"
End With
With cmbPaymentMode
.Clear
.AddItem ""
.AddItem "Cash"
.AddItem "Card"
.AddItem "Check"
End With
End Sub
Gore je opisano kako stvoriti obrazac za automatski unos podataka u programu Excel VBA . Nadamo se da vam je članak koristan.