ComboBox1'den seçilen veriye göre ComboBox2 seçenekleri

Katılım
6 Mart 2006
Mesajlar
251
Arkadaşlar merhaba,

ComboBox1'de seçilen veriye göre ComboBox2'de ki seçenekler değişebilirmi acaba?

detaylar ekteki dosyadadır.

herkese iyi çalışmalar.
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub ComboBox1_Change()
ComboBox2.Clear
If ComboBox1.Value = "A" Then
    For i = 1 To 5
        ComboBox2.AddItem i
    Next
End If
If ComboBox1.Value = "B" Then
    For i = 6 To 10
        ComboBox2.AddItem i
    Next
End If
If ComboBox2.ListCount > 0 Then ComboBox2.ListIndex = 0
End Sub
 
Katılım
6 Mart 2006
Mesajlar
251
Teşekkür ederim Sn. Orion2

yalnız burada sıralı sayılar olduğu için

For i = 1 To 5

bu kodu kullanabiliyoruz

Peki seçenekleri isim yapalım desek

Örneğin,

ComoBox1'de A seçeneğini seçince ComboBox2'de Ahmet,Mehmet vs. seçeneklerinin çıkması için ne yapmamız gerekir?
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Teşekkür ederim Sn. Orion2

yalnız burada sıralı sayılar olduğu için

For i = 1 To 5

bu kodu kullanabiliyoruz

Peki seçenekleri isim yapalım desek

Örneğin,

ComoBox1'de A seçeneğini seçince ComboBox2'de Ahmet,Mehmet vs. seçeneklerinin çıkması için ne yapmamız gerekir?
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub ComboBox1_Change()
ComboBox2.Clear
isim1 = Array("Ahmet", "Mehmet", "Ali", "Recep", "Şaban")
isim2 = Array("Hasan", "Osman", "Evren", "Deniz", "Emre")
If ComboBox1.Value = "A" Then
    For i = 0 To 4
        ComboBox2.AddItem isim1(i)
    Next
End If
If ComboBox1.Value = "B" Then
    For i = 0 To 4
        ComboBox2.AddItem isim2(i)
    Next
End If
If ComboBox2.ListCount > 0 Then ComboBox2.ListIndex = 0
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kodlar ile de Sayfadaki A ve B sütunlarından verileri alıyor.
Veri'ler çok olduğu zaman bu rowSource yöntemini kullanmanız dağa doğru olacaktır.
Ekli dosyayı incelyiniz.:cool:
Kod:
Private Sub ComboBox1_Change()
ComboBox2.RowSource = ""
If ComboBox1.Value = "A" Then
    ComboBox2.RowSource = "A2:A" & Cells(65536, "A").End(xlUp).Row
End If
If ComboBox1.Value = "B" Then
    ComboBox2.RowSource = "B2:B" & Cells(65536, "B").End(xlUp).Row
End If
If ComboBox2.ListCount > 0 Then ComboBox2.ListIndex = 0
End Sub
 

casteneda

Altın Üye
Katılım
17 Mayıs 2006
Mesajlar
85
Excel Vers. ve Dili
Excel 2003, Türkçe
Altın Üyelik Bitiş Tarihi
16-02-2026
Herkese selamlar;
Combolar user formda değilde, sayfa üzerinde olsaydı bu örnekleri nasıl düzenlerdik?
 
Katılım
6 Mart 2006
Mesajlar
251
Sn. Orion2 yardımlarınız için teşekkür ederim

En son verdiğiniz örnek çok işime yaradı

Fakat benim Sayfa1'dekileri değilde Sayfa3'tekileri almam gerekiyor.

Bunun için ComboBox3 örneğinizde nasıl bir değişiklik yapmamız gerekir?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Usreform'daki kodlarda bir değişiklik yapmaya gerek yok bir buton ekledim ve butona userform'u açan makroyu atadım .İşlem tamamdır.
Ekli dosyayı inceleyiniz.:cool:
 
Katılım
6 Mart 2006
Mesajlar
251
Teşekkür ederim

Gerçekten pratik bir çözüm olmuş.

Yalnız,Bazı veriler yüzünden benim sayfa 'VERİ' isimli sayfada direk açılıyor.

Bu arada aynı sayfanın başka bir yerinde kullanma şansımda yok çünkü,ComboBox için içerik yazdığımız Sayfa1'deki veriler A1 k65000 arasında listelenen ve bir nesne ile girilerek silinebilen sayfayla aynı. Ben orada herhangi bir veri sildiğimdede ComboBox için seçtiğim veride siliniyor.

Bu sebepten,Benim Sayfa1 açıkken ComboBox içeriklerini bir şekilde Sayfa3'ten çekmem gerekiyor.

Yardımlarınız için teşekkür ederim.
 
Üst