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
Altın Üyelik Bitiş Tarihi
16-07-2027
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

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Linkteki çalışma size yardımcı olur sanırım.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,867
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
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
 

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
@halit3 çok teşekkür ederim tam istediğim gibi :)
 
Üst