VBA - Kullanıcı Formları
Bir User Formbir kullanıcı veri girişini daha kontrol edilebilir ve kullanıcı için kullanımı daha kolay hale getiren özel oluşturulmuş bir iletişim kutusudur. Bu bölümde, basit bir form tasarlamayı ve excel'e veri eklemeyi öğreneceksiniz.
Step 1- Alt + F11 tuşlarına basarak VBA Penceresine gidin ve "Ekle" Menüsüne gidin ve "Kullanıcı Formu" nu seçin. Seçildikten sonra, aşağıdaki ekran görüntüsünde gösterildiği gibi kullanıcı formu görüntülenir.
Step 2 - Verilen kontrolleri kullanarak formları tasarlayın.
Step 3- Her bir kontrolü ekledikten sonra, kontrollerin adlandırılması gerekir. Başlık, formda görünene karşılık gelir ve ad, o öğe için VBA kodunu yazarken görünecek mantıksal ada karşılık gelir.
Step 4 - Eklenen kontrollerin her birinin karşısındaki isimler aşağıdadır.
Kontrol | Mantıksal Ad | Başlık |
---|---|---|
Nereden | frmempform | Çalışan Formu |
Çalışan Kimlik Etiketi Kutusu | empid | Çalışan kimliği |
ad Etiket Kutusu | İsim | İsim |
soyadı Etiket Kutusu | Soyadı | Soyadı |
dob Etiket Kutusu | dob | Doğum tarihi |
mailid Etiket Kutusu | posta kimliği | Email kimliği |
Passportholder Etiket Kutusu | Pasaport sahibi | Pasaport sahibi |
Emp ID Metin Kutusu | txtempid | Uygulanamaz |
Ad Metin Kutusu | txtfirstname | Uygulanamaz |
Soyadı Metin Kutusu | txtlastname | Uygulanamaz |
E-posta Kimliği Metin Kutusu | txtemailid | Uygulanamaz |
Tarih Combo Box | cmbdate | Uygulanamaz |
Ay Birleşik Giriş Kutusu | cmbmonth | Uygulanamaz |
Yıl Açılan Kutu | cmbyear | Uygulanamaz |
Evet Radyo Düğmesi | Radyolar | Evet |
Radyo Düğmesi Yok | radiono | Hayır |
Gönder Düğmesi | btnsubmit | Sunmak |
İptal Düğmesi | btncancel | İptal etmek |
Step 5 - Forma sağ tıklayıp 'Kodu Görüntüle'yi seçerek form yükleme olayı için kod ekleyin.
Step 6 - Nesneler açılır menüsünden "Kullanıcı formu" nu seçin ve aşağıdaki ekran görüntüsünde gösterildiği gibi "Başlat" yöntemini seçin.
Step 7 - Formu yükledikten sonra, metin kutularının temizlendiğinden, açılır kutuların doldurulduğundan ve Radyo düğmelerinin sıfırlandığından emin olun.
Private Sub UserForm_Initialize()
'Empty Emp ID Text box and Set the Cursor
txtempid.Value = ""
txtempid.SetFocus
'Empty all other text box fields
txtfirstname.Value = ""
txtlastname.Value = ""
txtemailid.Value = ""
'Clear All Date of Birth Related Fields
cmbdate.Clear
cmbmonth.Clear
cmbyear.Clear
'Fill Date Drop Down box - Takes 1 to 31
With cmbdate
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"
.AddItem "11"
.AddItem "12"
.AddItem "13"
.AddItem "14"
.AddItem "15"
.AddItem "16"
.AddItem "17"
.AddItem "18"
.AddItem "19"
.AddItem "20"
.AddItem "21"
.AddItem "22"
.AddItem "23"
.AddItem "24"
.AddItem "25"
.AddItem "26"
.AddItem "27"
.AddItem "28"
.AddItem "29"
.AddItem "30"
.AddItem "31"
End With
'Fill Month Drop Down box - Takes Jan to Dec
With cmbmonth
.AddItem "JAN"
.AddItem "FEB"
.AddItem "MAR"
.AddItem "APR"
.AddItem "MAY"
.AddItem "JUN"
.AddItem "JUL"
.AddItem "AUG"
.AddItem "SEP"
.AddItem "OCT"
.AddItem "NOV"
.AddItem "DEC"
End With
'Fill Year Drop Down box - Takes 1980 to 2014
With cmbyear
.AddItem "1980"
.AddItem "1981"
.AddItem "1982"
.AddItem "1983"
.AddItem "1984"
.AddItem "1985"
.AddItem "1986"
.AddItem "1987"
.AddItem "1988"
.AddItem "1989"
.AddItem "1990"
.AddItem "1991"
.AddItem "1992"
.AddItem "1993"
.AddItem "1994"
.AddItem "1995"
.AddItem "1996"
.AddItem "1997"
.AddItem "1998"
.AddItem "1999"
.AddItem "2000"
.AddItem "2001"
.AddItem "2002"
.AddItem "2003"
.AddItem "2004"
.AddItem "2005"
.AddItem "2006"
.AddItem "2007"
.AddItem "2008"
.AddItem "2009"
.AddItem "2010"
.AddItem "2011"
.AddItem "2012"
.AddItem "2013"
.AddItem "2014"
End With
'Reset Radio Button. Set it to False when form loads.
radioyes.Value = False
radiono.Value = False
End Sub
Step 8- Şimdi kodu Gönder düğmesine ekleyin. Gönder düğmesine tıkladıktan sonra, kullanıcı değerleri çalışma sayfasına ekleyebilmelidir.
Private Sub btnsubmit_Click()
Dim emptyRow As Long
'Make Sheet1 active
Sheet1.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = txtempid.Value
Cells(emptyRow, 2).Value = txtfirstname.Value
Cells(emptyRow, 3).Value = txtlastname.Value
Cells(emptyRow, 4).Value = cmbdate.Value & "/" & cmbmonth.Value & "/" & cmbyear.Value
Cells(emptyRow, 5).Value = txtemailid.Value
If radioyes.Value = True Then
Cells(emptyRow, 6).Value = "Yes"
Else
Cells(emptyRow, 6).Value = "No"
End If
End Sub
Step 9 - Kullanıcı İptal düğmesini tıkladığında formu kapatmak için bir yöntem ekleyin.
Private Sub btncancel_Click()
Unload Me
End Sub
Step 10- "Çalıştır" düğmesine tıklayarak formu çalıştırın. Değerleri forma girin ve 'Gönder' düğmesini tıklayın. Değerler, aşağıdaki ekran görüntüsünde gösterildiği gibi otomatik olarak çalışma sayfasına akacaktır.