• DİKKAT

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

UserForm üzerinden iki liste karşılaştırma

Katılım
13 Ocak 2014
Mesajlar
9
Excel Vers. ve Dili
Excel 2010 İngilizce
Merhaba,

Ekteki dosyada "Şehir Kodları" adlı sayfada yan yana iki liste bulunmakta. "Veriler" sayfasındaki "Yeni Form" butonuna basınca bir form oluşuyor. Benim sorum bu formdaki kod bölümüne kod listesindeki kodlardan birini yazdığımda alttaki şehir bölümüne karşılığındaki değer gelebilir mi? Olabilirse otomatik olarak mümkün mü yoksa bir butona bağlamak zorunda mıyım? Yardımlarınızı bekliyorum. Şimdiden emeğiniz için teşekkürler...


http://dosya.co/zboc7alzbe8m/deneme.xlsm.html
 
Yardımcı olabilecek yok mu sayın arkadaşlar, kendim forumdaki userform uygulamalarından deniyorum ama konuya çok hakim değilim, tekrar teşekkürler.
 
Merhaba
"Userform" kod sayfasına aşağıdaki kodları kopyalayıp deneyiniz.
"Textbox" a (olan) kodları yazdıkça "Listbox"a şehirleri alt alta ekleyecektir.
http://s6.dosya.tc/server8/iqxcdg/deneme.zip.html
Kod:
Private Sub TextBox1_Change()

With Worksheets("Şehir Kodları")
    Set c = .Range("a1:a" & Rows.Count).Find(TextBox1, LookIn:=xlValues, Lookat:=xlWhole)
    If Not c Is Nothing Then
        f = c.Address
        Do
ListBox1.AddItem .Cells(c.Row, "B")

            Set c = .Range("a1:a" & Rows.Count).FindNext(c)
If c Is Nothing Then Exit Do
        Loop While Not c Is Nothing And c.Address <> f
    End If
End With
End Sub
 
Cevabınız için teşekkür ederim.
Peki bu işlemi şehirleri listelemekten ziyade bire bir eşleme şeklinde yapabilir miyiz? Mesela "1001" yazında "Adana" gelsin ama "1002" yazınca "Afyon" gelsin sadece... Bunun için nasıl bir düzenleme yapabiliriz?
Tekrardan emeğinize sağlık.
 
Merhaba
Sizin gönderdiğiniz dosyada;
Userform1 de "Kod" için Textbox1, "Şehir" için Lisbox1 eklemiştiniz son mesajınızdaki isteğinize göre Listbox un yerine "textbox2" yi ekleyip
Şöyle deneyin:
Kırmızı bölüm "kod" 4 haneli oluncaya kadar makro çalışmasın diye, yazacağınız kod hanesi az veya fazla ise ister silin ister, artırın.
http://s6.dosya.tc/server8/8lxf1q/deneme.zip.html
Kod:
 Private Sub TextBox1_Change()
[COLOR="Red"]If Len(TextBox1.Value) <> 4 Then Exit Sub[/COLOR]
    Set c = Worksheets("Şehir Kodları").Range("a1:a" & Rows.Count).Find(TextBox1, LookIn:=xlValues, Lookat:=xlWhole)
    If Not c Is Nothing Then
    TextBox2 = Worksheets("Şehir Kodları").Cells(c.Row, "B")
    End If
End Sub

Eğer örnek dosyanızdaki gibi şehir adının Listboxa gelmesi gerekiyorsa;
Kod:
Private Sub TextBox1_Change()
If Len(TextBox1.Value) <> 4 Then Exit Sub
ListBox1.Clear
    Set c = Worksheets("Şehir Kodları").Range("a1:a" & Rows.Count).Find(TextBox1, LookIn:=xlValues, Lookat:=xlWhole)
    If Not c Is Nothing Then
    ListBox1.AddItem Worksheets("Şehir Kodları").Cells(c.Row, "B")
    End If

End Sub
 
Aynen hocam bu şekilde ihtiyacımı karşılamakta tekrar çok teşekkür ederim, emeğinize sağlık...

Not: Birebir işlemede listbox lazım diye önyargıda bulundum bu nedenden biraz kulağı tersten tutmuş oldum kusura bakmayın...
 
Aynen hocam bu şekilde ihtiyacımı karşılamakta tekrar çok teşekkür ederim, emeğinize sağlık....
Rica ederim, kolay gelsin.

Not: Birebir işlemede listbox lazım diye önyargıda bulundum bu nedenden biraz kulağı tersten tutmuş oldum kusura bakmayın...
Estağfurullah, rica ederim kusurluk bir durum yok. Ben ilk önce; kod yazdıkça listeye eklenecek diye yanlış anlamışım.
 
Geri
Üst