Visual Basic, Excel'de tekrarlayan görevleri otomatikleştirmek için mükemmel bir dildir. Son kullanıcılara düzenli görünen son derece işlevsel kullanıcı formları oluşturarak otomasyonunuzu bir üst seviyeye çıkardığınızı hayal edin.

VBA'daki kullanıcı formları size boş bir tuval sunar; formları istediğiniz zaman ihtiyaçlarınıza göre tasarlayabilir ve düzenleyebilirsiniz.

Bu kılavuzda, bağlantılı Excel sayfalarında ilgili bilgileri yakalayan öğrenci tabanlı bir veri giriş formu oluşturmayı öğreneceksiniz.

Excel VBA ile Kullanıcı Formu Oluşturma

Yeni bir Excel çalışma kitabı açın ve veri girişi formunuzu oluşturmaya başlamadan önce birkaç ön adım gerçekleştirin.

Çalışma kitabınızı istediğiniz adla kaydedin; dosyanın türünü bir olarak değiştirmeyi unutmayın. Excel Makro Etkin Çalışma Kitabı.

İlişkili:Excel İpuçları ve Püf Noktaları Öğrenmek için Web Siteleri ve Bloglar

Bu çalışma kitabına aşağıdaki adlarla iki sayfa ekleyin:

  1. Sayfa1: Ev
  2. Sayfa2:Öğrenci Veritabanı

Bu isimleri ihtiyaçlarınıza göre değiştirmekten çekinmeyin.

instagram viewer

İçinde Ev sayfasında, kullanıcı formu makrosunu kontrol etmek için bir düğme ekleyin. şuraya git geliştirici sekmesine tıklayın ve Buton seçeneğinden Sokmak açılır liste. Düğmeyi sayfanın herhangi bir yerine yerleştirin.

Düğmeyi yerleştirdikten sonra yeniden adlandırın. Üzerine sağ tıklayın ve üzerine tıklayın Yeni formu göstermek için yeni bir makro atamak için.

Düzenleyici penceresine aşağıdaki kodu girin:

Alt Düğme1_Click()
Kullanıcı Formu. Göstermek
Alt Alt

Bir kere Ev ve Öğrenci Veritabanı sayfalar hazır, sıra kullanıcı formunu tasarlamaya geldi. şuraya gidin: geliştirici sekmesine tıklayın ve Visual Basic Düzenleyiciyi açmak için Alternatif olarak, tuşuna basabilirsiniz. ALT+F11 editör penceresini açmak için

Tıkla Sokmak sekmesini seçin ve seçin Kullanıcı Formu.

Boş bir kullanıcı formu kullanıma hazırdır; Formla birlikte, düzeni tasarlamak için gerekli tüm araçları içeren bir araç kutusu açılır.

Araç kutusundan, Çerçeve seçenek. Bunu kullanıcı formuna sürükleyin ve yeniden boyutlandırın.

İçinde (isim) seçeneği, çerçevenin adını değiştirebilirsiniz. Adı ön uçta göstermek için, adı Altyazı kolon.

Ardından, Etiket araç kutusundan seçeneğini belirleyin ve bu çerçeveye iki etiket ekleyin. İlkini şu şekilde yeniden adlandırın: Başvuru numarası ve ikincisi olarak Öğrenci Kimliği.

Aynı yeniden adlandırma mantığı geçerlidir; aracılığıyla isimleri değiştirin Altyazı içindeki seçenek Özellikleri pencere. Adını değiştirmeden önce ilgili etiketi seçtiğinizden emin olun.

Ardından, etiket kutularının yanına iki metin kutusu ekleyin. Bunlar, kullanıcının girdilerini yakalamak için kullanılacaktır. aracılığıyla iki metin kutusunun adını değiştirin. (İsim) sütun içinde Özellikleri pencere. İsimler aşağıdaki gibidir:

  • Metin kutusu1: txtUygulamaHayır
  • Metin kutusu2: txtÖğrenciKimliği

Öğrenci Ayrıntıları Çerçevesini Tasarlama

Dikey bir çerçeve ekleyin ve 10 etiket ve 10 metin kutusu ekleyin. Her birini aşağıdaki şekilde yeniden adlandırın:

  • Etiket3: İsim
  • etiket4: Yaş
  • etiket5: Adres
  • Etiket6: Telefon
  • etiket7: Şehir
  • Etiket8: Ülke
  • Etiket9: Doğum tarihi
  • etiket10: Posta kodu
  • Etiket11: Milliyet
  • etiket12: Cinsiyet

Bu etiketlerin yanına karşılık gelen metin kutularını ekleyin; iki (veya daha fazla) ekle seçenek tuşu yanındaki kullanıcı formu araç kutusundaki kutuları Cinsiyet etiket. onları yeniden adlandır Erkek ve Dişi (Özel ile birlikte) sırasıyla.

Kurs Ayrıntıları Çerçevesini Tasarlama

Başka bir dikey çerçeve ekleyin ve her etikete karşılık gelen altı etiket ve altı metin kutusu ekleyin. Etiketleri aşağıdaki gibi yeniden adlandırın:

  • etiket13: Kurs Adı
  • etiket14: Kurs kimliği
  • etiket15: Kayıt Başlangıç ​​Tarihi
  • etiket16: Kayıt Bitiş Tarihi
  • etiket17: Kurs süresi
  • etiket18: Bölüm

İlişkili: Excel Makrolarını VBA ile Programlarken Kaçınılması Gereken 4 Hata

Ödeme Ayrıntıları Çerçevesini Tasarlama

Yeni bir çerçeve ekleyin; yeni bir etiket ekleyin ve adını "Ödeme ayrıntılarını güncellemek istiyor musunuz?" İki ekle seçenek düğmeleri; onları yeniden adlandır Evet ve Numara.

Benzer şekilde, iki ek etiket ve iki birleşik giriş kutusu içeren yeni bir çerçeve ekleyin. Etiketleri aşağıdaki gibi yeniden adlandırın:

  • etiket19: Ödeme alındı
  • etiket20: Ödeme Şekli

Gezinti Bölmesini Tasarlama

Son çerçevede, araç kutusundan formların yürütülmesi için kod içerecek üç düğme ekleyin.

Düğmeleri aşağıdaki şekilde yeniden adlandırın:

  • Buton 1: Ayrıntıları Kaydet
  • Düğme2: Formu Temizle
  • Düğme3: çıkış

Otomatik Form Kodunu Yazma: Ayrıntıları Kaydet Düğmesi

üzerine çift tıklayın Ayrıntıları Kaydet buton. Takip eden modülde aşağıdaki kodu girin:

Özel Alt KomutDüğmesi2_Click()

'kodlar boyunca kullanılan değişkenleri bildirin
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long

'Sayısal alanlara karakter değerlerinin girilip girilmediğini kontrol etmek için doğrulamalar ekleyin.
VBA.IsNumeric (txtApplicationNo. Value) = False ise
MsgBox "Uygulama Numarasında sadece sayısal değerler kabul edilir", vbCritical
Alt Çıkış
Bitir

VBA.IsNumeric (txtStudentID.Value) = False ise
MsgBox "Öğrenci Kimliğinde yalnızca sayısal değerler kabul edilir", vbCritical
Alt Çıkış
Bitir

Eğer VBA.IsNumeric (txtAge. Değer) = False O zaman
MsgBox "Yaşta sadece sayısal değerler kabul edilir", vbCritical
Alt Çıkış
Bitir

Eğer VBA.IsNumeric (txtPhone. Değer) = False O zaman
MsgBox "Telefon Numarasında sadece sayısal değerler kabul edilir", vbCritical
Alt Çıkış
Bitir

VBA.IsNumeric (Me.txtCourseID.Value) = False ise
MsgBox "Ders Kimliğinde yalnızca sayısal değerler kabul edilir", vbCritical
Alt Çıkış
Bitir

'dönen bir veritabanı oluşturmak için metin kutusu alanlarını alttaki sayfalarla ilişkilendirin
sht = ThisWorkbook olarak ayarlayın. Sheets("Öğrenci Veritabanı")

'her iki sayfada da son doldurulmuş satırı hesapla

son satır = sht. Aralık("a" & Satırlar. Sayım).Bitiş (xlUp).Satır + 1

'her metin kutusunun değerlerini ilgili sayfa hücrelerine yapıştırın

sht ile
.Range("a" & lastrow).Value = txtApplicationNo. Değer
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. Değer
.Range("d" & lastrow).Value = txtAge. Değer
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress. Değer
.Range("h" & lastrow).Value = txtPhone. Değer
.Range("i" & lastrow).Value = txtCity. Değer
.Range("j" & lastrow).Value = txtCountry. Değer
.Range("k" & lastrow).Value = txtZip. Değer
.Range("l" & lastrow).Value = txtNationality. Değer
.Range("m" & lastrow).Value = txtCourse. Değer
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart. Değer
.Range("p" & lastrow).Value = txtenrollmentend. Değer
.Range("q" & lastrow).Value = txtcourseduration. Değer
.Range("r" & lastrow).Value = txtDept. Değer

İle bitmek
şt. etkinleştir

'kullanıcının girdisine göre cinsiyeti belirle
Eğer optMale. Değer = Doğru Sonra sht. Range("g" & lastrow).Value = "Erkek"
Eğer optFemale. Değer = Doğru Sonra sht. Range("g" & lastrow).Value = "Kadın"
'Kullanıcının Evet radyo düğmesini seçmesi durumunda bir mesaj kutusu görüntüle

Evet ise. Değer = O Zaman Doğru
MsgBox "Lütfen aşağıdaki ödeme ayrıntılarını seçin"
Başka:
Alt Çıkış

Bitir

Alt Alt

Kodun hangi bölümlerinin veya herhangi birinin ne anlama geldiğinden emin değilseniz endişelenmeyin. Bir sonraki bölümde ayrıntılı olarak açıklayacağız.

Otomatik Form Kodu Açıklaması

Metin kutuları, metin ve sayısal değerlerin bir karışımını içerecektir, bu nedenle kullanıcının girişini kısıtlamak önemlidir. bu Başvuru numarası, Öğrenci Kimliği, Yaş, Telefon, Kurs kimliği, ve Kurs süresi yalnızca sayıları içermeli, geri kalanı metin içerecektir.

kullanma EĞER deyimi, kullanıcı sayısal alanlardan herhangi birine bir karakter veya metin değeri girerse kod hata açılır pencerelerini tetikler.

Hata doğrulamaları mevcut olduğundan, metin kutularını sayfa hücreleriyle ilişkilendirmeniz gerekir.

bu son sıra değişkenler son doldurulmuş satırı hesaplar ve dinamik kullanım için değerleri bu satırlarda saklar.

Son olarak, değerler metin kutularından bağlantılı Excel sayfasına yapıştırılır.

Formu Temizle ve Çık Düğmesi Kodları

İçinde açık butonu ile kullanıcı formundaki mevcut değerleri silmek için kodu yazmanız gerekmektedir. Bu, aşağıdaki şekilde yapılabilir:

Benimle
.txtUygulamaNo. Değer = ""
.txtStudentID.Value = ""
..txtAdı. Değer = ""
.txtAge. Değer = ""
.txtAdresi. Değer = ""
.txtTelefon. Değer = ""
.txtŞehir. Değer = ""
.txtÜlke. Değer = ""
.txtDOB.Value = ""
.txtZip. Değer = ""
.txtUluluk. Değer = ""
.txtKursu. Değer = ""
.txtCourseID.Value = ""
.txtenrollmentstart. Değer = ""
.txtenrollmentend. Değer = ""
.txtders süresi. Değer = ""
.txtDept. Değer = ""
.cmbÖdeme Modu. Değer = ""
.cmbÖdeme. Değer = ""
.optKadın. Değer = Yanlış
.optErkek. Değer = Yanlış
.optEvet. Değer = Yanlış
.optNo. Değer = Yanlış

İle bitmek

İçinde çıkış butonu ile kullanıcı formunu kapatmak için aşağıdaki kodu giriniz.

Özel Alt KomutDüğmesi5_Click()
beni boşalt
Alt Alt

Son adım olarak, birleşik giriş kutuları (ödeme çerçeveleri içinde) için açılır değerler oluşturmak için birkaç son kod parçası girmeniz gerekir.

Özel Alt UserForm_Activate()

cmbPayment ile
.Temizlemek
.Öğe eklemek ""
.AddItem "Evet"
.AddItem "Hayır"
İle bitmek
cmbPaymentMode ile

.Temizlemek
.Öğe eklemek ""
.AddItem "Nakit"
.AddItem "Kart"
.AddItem "Kontrol Et"
İle bitmek
Alt Alt

VBA Otomasyonu İşi Kolaylaştırıyor

VBA, birçok amaca hizmet eden çok yönlü bir dildir. Kullanıcı formları, VBA'nın yalnızca bir yönüdür; çalışma kitaplarını ve çalışma sayfalarını birleştirme, birden çok Excel sayfasını birleştirme ve diğer kullanışlı otomasyon kullanımları gibi birçok başka kullanım vardır.

Otomasyon hedefi ne olursa olsun, VBA göreve bağlıdır. Öğrenmeye ve pratik yapmaya devam ederseniz, iş akışınızın iyileştiremeyeceğiniz hiçbir yönü yoktur.

Bir VBA Makrosu Kullanarak Birden Çok Excel Sayfasını Birleştirme

Aynı çalışma kitabında birden fazla Excel sayfasındaki verileri birleştirmek gerçek bir güçlüktür... VBA makrolarını kullanana kadar.

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • Programlama
  • üretkenlik
  • Visual Basic Programlama
  • Microsoft Excel
Yazar hakkında
Gaurav Siyali (50 Makale Yayımlandı)

Gaurav Siyal, bir dizi dijital pazarlama firması ve yazılım yaşam döngüsü belgeleri için iki yıllık yazma deneyimine sahiptir.

Gaurav Siyal'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın