• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ComboBox 'a teke düşürerek veri aktarma

Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
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

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

Ö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
 
Sayın kulomer teşekkür ederim. ComboBox1 olarak daha çok işime yaracaktı ama bunu da deneyeceğim sağolun.
 
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.
 
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
 
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:
Ekli dosyayı inceler misiniz? Userform ve gelişmiş filtrre özelliklerini kullanarak düzenlemeye çalıştım:
 

Ekli dosyalar

Teşekkür ederim Yusuf bey sağolun emeğinize sağlık.
 
Geri
Üst