Veri doğrulama kullanarak bir çalışma sayfasında basamaklı açılır listenin nasıl oluşturulacağını biliyoruz. Ancak VBA kullanıcı formunda basamaklı bir açılan kutu açılır listesini nasıl oluştururuz. Bu temel ihtiyaçlardan biridir.
Bu yazıda VBA'da bağımlı bir combobox oluşturmayı öğreneceğiz.
VBA'da Bağımlı Combobox İçin Mantık
VBA'da bağımlı bir birleşik giriş kutusu oluşturmak için, birleşik giriş kutusunu kaynak öğenin olayında başlatmamız gerekir. Örneğin, bir birleşik giriş kutusu bir radyo düğmesi grubuna bağlıysa, bu durumda bağımlı birleşik giriş kutusunu yükleme kodu, birisi bir radyo düğmesi seçtikten hemen sonra çalışmalıdır. Veya bir açılan kutu başka bir açılan kutuya bağlıysa, açılan kutuya bağlı olarak açılan kutudaki değer her değiştirildiğinde yüklenmelidir.
Teori yeter. Nasıl çalıştığını görmek için bir örneğe geçelim.
Başka Bir Combobox'a Bağlı ComboBox
İki combobox oluşturun. Birincisi, birkaç ülke adını listelemelidir. Diğeri, seçilen ülkenin eyaletlerinin adlarını listelemelidir. Kullanıcı ilk açılan kutuda ülke değiştirirse, ikinci açılan kutunun listesi değiştirilmelidir.
Ülkeler ve eyaletler etiketli iki birleşik giriş kutusu ve girişi göndermek için bir komut düğmesi olan bir form oluşturalım.
İlk açılan kutu ülkelerin adlarını listelemelidir ve herhangi bir değere bağlı değildir. Bu yüzden temel combobox başlatma için yaptığımız gibi form_intialize olayına yükleyeceğiz.
Kullanıcı formuna çift tıklayın. UserForm Object'de kodlama alanını açacaktır. Şimdi soldaki açılır menüden userform'u seçin. Ardından sağdaki açılır menüden başlat'ı seçin.
Boş bir UserForm_Initialize() alt adı eklenecektir. Bu altta yazılan her şey, kullanıcı formu görünmeden önce yürütülecektir.
Bu yüzden combobox için başlatma kodunu buraya yazıyoruz.
Private Sub UserForm_Initialize() ülkeleri = Array("Hindistan", "Nepal", "Butan", "Shree Lanka") UserForm1.ComboBox1.List = End Sub durumlarını belirtir
İlk combobox'ımızı başlattık. Kullanıcı formunu her yüklediğinizde, ilk açılan kutu, ülkelerin isimleriyle hazır olacaktır.
Şimdi ikinci combobox'ı yüklemek için, ilk combobox1'de hangi değerin seçildiğine bakmamız ve combobox1 değerlerini her değiştirdiğinde kodu çalıştırmamız gerekiyor. Bunun için Combobox_AfterUpdate olayını kullanacağız.
Soldaki açılır menüden combobox1'i seçin. Sağdaki açılır menüden AfterUpdate'i seçin. Change olayını da kullanabiliriz ancak makalede AfterUpdate'e bağlı kalacağız.
Şimdi aşağıdaki kodu yazın:
Private Sub ComboBox1_AfterUpdate() Select Case ComboBox1.Value Case "Hindistan": state = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir") Case "Nepal": state = Array("Arun Kshetra", "Janakpur Kshetra", "Kathmandu Kshetra",_ "Gandak Kshetra", "Kapilavastu Kshetra") Durum "Butan": durumlar = Dizi("Bumthang", "Trongsa", "Punakha", "Thimphu", " Paro") Durum "Shree Lanka": durumlar = Array("Galle", "Ratnapura", "Colombo", "Badulla", "Jaffna") Son Seçim ComboBox2.List = Durumlar End Sub
Burada bir select case ifadesi kullandık. Select case ifadesi, birçok değerden hangi değerin seçildiğini görmek istediğimizde iyidir. Burada ayrıntılı olarak açıkladım.
Kullanıcı tarafından girilen değeri saklamak için gönder düğmesini kullanın. Kullanıcı tarafından seçilen ülke ve eyaleti çalışma sayfasına kaydetmek için komut butonuna aşağıdaki kodu yazın.
Private Sub CommandButton1_Click() ülke = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets("sheet1").Range("G1") = ülke ThisWorkbook.Worksheets("sheet1").Range("H1") = State Unload Ben Alt Alt
Şimdi kullanıcı formunu göstermek için çalışma sayfasına bir buton yerleştirin ve aşağıdaki kodu yazın. Veya kullanıcı formunu göstermek için basit bir modül kullanabilirsiniz.
Sub load_userform() UserForm1.End Sub'ı Göster
Şimdi load_userform kodunu çalıştırın.
O nasıl çalışır?
userform.show koduna sahip alt çalıştırdığınızda, VBA, userform.show komutunu çalıştırdıktan hemen sonra userform_initialize olaylarını çalıştırır. userform_intialize olayında, ülkelerin listesini içeren ilk açılan kutuyu başlattık. Daha sonra form kullanıcıya gösterilir.
Artık kullanıcı ilk açılan kutudan herhangi bir değer seçtiğinde, olay açılan kutusu1_AfterUpdate olayı çalışır. Bu olay, kullanıcı tarafından açılan kutu1'de hangi değerin seçildiğini kontrol etmek için kodu içerir ve bu değere göre, durum dizisini ayarlar ve açılan kutu2 değerlerini durum dizisi ile başlatır.
Evet beyler, VBA kullanıcı formunda basamaklı bir açılan kutuyu bu şekilde yaratırsınız. Umarım yeterince açıklayıcı olabilmişimdir ve makale amacına ulaşmıştır. Bu makale veya herhangi bir VBA konusuyla ilgili herhangi bir şüpheniz varsa, aşağıdaki yorumlar bölümünde bana sorun.
Excel VBA UserForms'a Başlarken| Excel'de nasıl form oluşturulacağını, VBA araç kutusunun nasıl kullanılacağını, kullanıcı girdilerinin nasıl ele alınacağını ve son olarak kullanıcı girdilerinin nasıl saklanacağını anlatacağım. Bu konuları bir örnek ve adım adım kılavuz kullanarak inceleyeceğiz.
Excel'de VBA değişkenleri| VBA, Visual Basic for Applications anlamına gelir. Microsoft'tan bir programlama dilidir. MSExcel, MS-Word ve MS-Access gibi Microsoft Office uygulamalarıyla kullanılırken VBA değişkenleri belirli anahtar kelimelerdir.
Excel VBA Değişken Kapsamı| Tüm programlama dillerinde, tanımlanmış bir değişkene nereden erişilebileceğini tanımlayan değişken erişim belirteçlerine sahibiz. Excel VBA İstisna değildir. VBA'nın da kapsam belirleyicileri vardır.
ByRef ve ByVal Argümanları | Bir argüman farklı bir alt veya fonksiyona ByRef argümanı olarak iletildiğinde, gerçek değişkenin referansı gönderilir. Değişkenin kopyasında yapılan herhangi bir değişiklik orijinal argümana yansır.
Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin | VBA kullanarak sayfaları sildiğiniz için ne yaptığınızı biliyorsunuz. Excel'e bu uyarıyı göstermemesini ve lanet olası sayfayı silmesini söylemek istersiniz.
Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme| Bu kodda, önce bir çalışma kitabı nesnesine bir başvuru oluşturduk. Sonra onu yeni bir çalışma kitabı nesnesiyle başlattık. Bu yaklaşımın yararı, bu yeni çalışma kitabında işlemleri kolayca yapabilmenizdir. Kaydetme, kapatma, silme vb.
Excel VBA Durum Çubuğunda Bir Mesaj Görüntüle| Excel'deki durum çubuğu, kod izleyicisi olarak kullanılabilir. VBA kodunuz uzun olduğunda ve VBA'yı kullanarak birkaç görev yaptığınızda, ekranın titrediğini görmemek için genellikle ekran güncellemesini devre dışı bırakırsınız.
Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın| Bu kod yalnızca VBA uyarılarını devre dışı bırakmakla kalmaz, aynı zamanda kodun zaman verimliliğini de artırır. Nasıl olduğunu görelim.
Popüler Makaleler:
Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.
Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.
Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli değerleri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.
Excel'de SUMIF İşlevi nasıl kullanılır? | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.