• DİKKAT

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

Userform'da Combobox ile veri doğrulama

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Herkese merhabalar;

Ekteki çalışmada data sayfasındaki verileri tablodaki gibi İl-ilçe-semt/belde-mahalle combobox ile filtreleyecek ve posta kodunu comboboxta seçilen veriler doğrultusunda posta kodunu textbox'a otomatik olarak göstermesini istiyorum. forumda ve webde biraz araştırdım fakat bir çözüm yolu bulamadım önerileriniz ve yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Linkteki çalışma size yardımcı olur sanırım.
 
Bu kodları bir dene

Rich (BB code):
Private Sub ComboBox1_Click()
ComboBox2.Clear

son = Sheets("data").Cells(Rows.Count, 1).End(3).Row
Veri1 = Sheets("data").Range("a2:a" & son)
veri2 = Sheets("data").Range("b2:b" & son)

Set liste = CreateObject("Scripting.Dictionary")

For X = 1 To UBound(Veri1)

If Veri1(X, 1) = ComboBox1.Text Then
If Not liste.Exists(veri2(X, 1)) Then
liste.Add veri2(X, 1), veri2(X, 1)

End If
End If
Next

If liste.Count > 0 Then
ComboBox2.List = liste.Keys
End If

End Sub

Private Sub ComboBox2_Click()
ComboBox3.Clear

son = Sheets("data").Cells(Rows.Count, 1).End(3).Row
Veri1 = Sheets("data").Range("a2:a" & son)
veri2 = Sheets("data").Range("b2:b" & son)
veri3 = Sheets("data").Range("c2:c" & son)

Set liste = CreateObject("Scripting.Dictionary")

For X = 1 To UBound(Veri1)

If Veri1(X, 1) & veri2(X, 1) = ComboBox1.Text & ComboBox2.Text Then

If Not liste.Exists(veri3(X, 1)) Then
liste.Add veri3(X, 1), veri3(X, 1)

End If
End If
Next

If liste.Count > 0 Then
ComboBox3.List = liste.Keys
End If

End Sub

Private Sub ComboBox3_Click()
ComboBox4.Clear

son = Sheets("data").Cells(Rows.Count, 1).End(3).Row
Veri1 = Sheets("data").Range("a2:a" & son)
veri2 = Sheets("data").Range("b2:b" & son)
veri3 = Sheets("data").Range("c2:c" & son)
veri4 = Sheets("data").Range("d2:d" & son)

Set liste = CreateObject("Scripting.Dictionary")

For X = 1 To UBound(Veri1)

If Veri1(X, 1) & veri2(X, 1) & veri3(X, 1) = ComboBox1.Text & ComboBox2.Text & ComboBox3.Text Then

If Not liste.Exists(veri4(X, 1)) Then
liste.Add veri4(X, 1), veri4(X, 1)

End If
End If
Next

If liste.Count > 0 Then
ComboBox4.List = liste.Keys
End If

End Sub

Private Sub ComboBox4_Click()
TextBox1.Text = ""

Veri1 = ""
veri2 = ""
'On Error Resume Next
Set Sh1 = Sheets("data")
deg1 = ""
For r = 2 To Sh1.Cells(Rows.Count, "A").End(3).Row
If Sh1.Cells(r, 1).Value & Sh1.Cells(r, 2).Value & Sh1.Cells(r, 3).Value & Sh1.Cells(r, 4).Value = ComboBox1.Text & ComboBox2.Text & ComboBox3.Text & ComboBox4.Text Then

TextBox1.Text = Sh1.Cells(r, 5)
Exit For
End If
Next

MsgBox "işlem tamam"


End Sub



Private Sub UserForm_Initialize()
ComboBox1.Clear

son = Sheets("data").Cells(Rows.Count, 1).End(3).Row
Veri = Sheets("data").Range("A2:A" & son)

Set liste = CreateObject("Scripting.Dictionary")

For X = 1 To UBound(Veri)
If Not liste.Exists(Veri(X, 1)) Then liste.Add Veri(X, 1), Veri(X, 1)
Next

If liste.Count > 0 Then
ComboBox1.List = liste.Keys
End If

End Sub
 
@halit3 çok teşekkür ederim tam istediğim gibi :)
 
Geri
Üst