ComboBox 'a teke düşürerek veri aktarma

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Arkadaşlar KAYIT adında sayfamda yer alan verilerin yukarıdaki ComboBox açılır kutularını seçtiğim verilerin aktarılması,
Örnek: KAYIT sayfamda onlarca ADANA ili olabilir. ADANA ilini seçtiğim zaman diğer ComboBox kutucuklarda sadece ADANA iline ait olan verilerin teke düşürülerek süzülmesi, Yani;
ADANA yı seçince (3 tane adana var ama ComboBox'a bir adet gelecek ki seçmekte zorluk olmasın)
MEHMET ve SALİH gelecek (MEHMET iki tane olmasına rağmen teke düşmesi lazım ComboBox ta)
BANKA ve BORÇ ÖDEME
NAKİT ve EFT
GELİR
Yani ComboBox kutucuklara ilgili bilgileri KAYIT kısmında ne kadar tekrar ederse etsin teke indirerek getirmesi (ÖRNEK: İL COMBOBOX kutucuğunu açtığım zaman 3 tane adana değil tek ADANA gelmesi gibi)
Yardımlarınız için şimdiden teşekkür ederim.
Dosya ekledim.
 

Ekli dosyalar

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Değerli Arkadaşım Merhaba

Talebiniz için Ekteki dosya eklenmiştir.

Dosyamızda KAYIT Sayfasından RAPOR Sayfasına isteğe bağlı olarak 5 Adet Açılır Kutu
birbirleriyle bağlantılı olacak şekilde veri aktarımı yapılmaktadır.

Selamlar...
 

Ekli dosyalar

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Öncelikle Combobox nesnelerinin ListFillRange kısmındaki yazanları silin.
Combobox1 için yaptığım örnek kodu çalışmanıza uygulayınız.

Kod:
Private Sub ComboBox1_GotFocus()

Set con = VBA.CreateObject("adodb.Connection")

con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select distinct([İŞ MERKEZİ]) from[KAYIT$]"
Set rs = con.Execute(sorgu)

ComboBox1.Column = rs.getrows

End Sub
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Sayın kulomer teşekkür ederim. ComboBox1 olarak daha çok işime yaracaktı ama bunu da deneyeceğim sağolun.
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Erdem bey yardımlarınız için teşekkür ederim. Ancak ComboBox 'ların birbirleri ile irtibatlı olması gerekiyor. Yani Adana ilini seçtiğim zaman diğer ComboBox'lar da sadece adana iline ait bilgilerin filtrelenmesi gerekiyor.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayın Erdem Bey'in belirttiği gibi listfillrows kısımlarını boşalttıktan sonra aşağıdaki kodları deneyiniz:

PHP:
Private Sub ComboBox1_Change()
Set s1 = Sheets("KAYIT")
son = WorksheetFunction.Max(2, s1.Cells(Rows.Count, "E").End(3).Row)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "select distinct [ADI SOYADI] from[KAYIT$A1:K" & son & "] where [İŞ MERKEZİ] = '" & ComboBox1.Value & "' "
Set rs = con.Execute(sorgu)
ComboBox2.Column = rs.getrows
End Sub

Private Sub ComboBox2_Change()
Set s1 = Sheets("KAYIT")
son = WorksheetFunction.Max(2, s1.Cells(Rows.Count, "E").End(3).Row)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "select distinct [HESAP ADI] from[KAYIT$A1:K" & son & "] where [İŞ MERKEZİ] = '" & ComboBox1.Value & "'" & _
        " and [ADI SOYADI] = '" & ComboBox2.Value & "'"
Set rs = con.Execute(sorgu)
ComboBox3.Column = rs.getrows

End Sub

Private Sub ComboBox3_Change()
Set s1 = Sheets("KAYIT")
son = WorksheetFunction.Max(2, s1.Cells(Rows.Count, "E").End(3).Row)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "select distinct [NAKİT TÜRÜ] from[KAYIT$A1:K" & son & "] where [İŞ MERKEZİ] = '" & ComboBox1.Value & "'" & _
        " and [ADI SOYADI] = '" & ComboBox2.Value & "' and [HESAP ADI] = '" & ComboBox3.Value & "'"
Set rs = con.Execute(sorgu)
ComboBox4.Column = rs.getrows
End Sub

Private Sub ComboBox4_Change()
Set s1 = Sheets("KAYIT")
son = WorksheetFunction.Max(2, s1.Cells(Rows.Count, "E").End(3).Row)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "select distinct [GELİR GİDER] from[KAYIT$A1:K" & son & "] where [İŞ MERKEZİ] = '" & ComboBox1.Value & "'" & _
        " and [ADI SOYADI] = '" & ComboBox2.Value & "' and [HESAP ADI] = '" & ComboBox3.Value & "' and [NAKİT TÜRÜ] = '" & combobx4.Value & "'"
Set rs = con.Execute(sorgu)
ComboBox5.Column = rs.getrows
End Sub
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Yusuf bey dediğiniz gibi yaptım ancak ComboBox kutuları açılmıyor.
Sıralama İŞ MERKEZİ, ADI SOYADI, HESAP ADI, GELİR GİDER şeklinde olacak. Yani iş merkezindeki illerden birini seçince diğer kutucuklarda o ile ait bilgiler süzülerek gelmesi gerekiyor.
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ekli dosyayı inceler misiniz? Userform ve gelişmiş filtrre özelliklerini kullanarak düzenlemeye çalıştım:
 

Ekli dosyalar

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Teşekkür ederim Yusuf bey sağolun emeğinize sağlık.
 
Üst