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:
- Sayfa1: Ev
- Sayfa2:Öğrenci Veritabanı
Bu isimleri ihtiyaçlarınıza göre değiştirmekten çekinmeyin.
İç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ış
BitirVBA.IsNumeric (txtStudentID.Value) = False ise
MsgBox "Öğrenci Kimliğinde yalnızca sayısal değerler kabul edilir", vbCritical
Alt Çıkış
BitirEğer VBA.IsNumeric (txtAge. Değer) = False O zaman
MsgBox "Yaşta sadece sayısal değerler kabul edilir", vbCritical
Alt Çıkış
BitirEğer VBA.IsNumeric (txtPhone. Değer) = False O zaman
MsgBox "Telefon Numarasında sadece sayısal değerler kabul edilir", vbCritical
Alt Çıkış
BitirVBA.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üleEvet 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.
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
- Programlama
- üretkenlik
- Visual Basic Programlama
- Microsoft Excel
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.
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