• DİKKAT

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

Soru Textbox'a Harf Girildiğinde Kod Çalışmıyor

Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Merhaba,

Userform üzerindeki bir Textbox içine metin girerek yine aynı Userform üzerinde bulunan Listbox içinde arama yaptırıyorum. Textbox içine rakam yazarsam kod çalışıyor fakat, metin yazdığımda çalışmıyor. Sanırım tanımlama kısmında hata yapıyorum. Yardımcı olabilirseniz çok sevinirim.

Textbox içine yazdığım metni Listbox içinde aradıktan sonra ListBox1.Locked = True işlemini yapmak istiyorum. Kullandığım kod şöyle;

If adara.Text = "*" Then UserForm4.ListBox1.Locked = True

Textbox içine rakam yazdığımda kod çalışıyor fakat metin yazdığımda çalışmıyor. Burada ki kodu nasıl değiştirmem gerekiyor.

Bu kodları da denedim hiçbiri olmadı;
If adara.Value = "*" Then UserForm4.ListBox1.Locked = True
If adara.Value = "<>" Then UserForm4.ListBox1.Locked = True
If adara.Value = True Then UserForm4.ListBox1.Locked = True
 
TextBox ile Listbox aynı olunca ListBox kilitlensin mi istiyorsunuz?
Yoksa TextBox yazdığınız veriyi Listboxda arayıp varsa listboxda o satırı seçili hale mi getirmek istiyorsunuz?
 
TextBox ile Listbox aynı olunca ListBox kilitlensin mi istiyorsunuz?
Yoksa TextBox yazdığınız veriyi Listboxda arayıp varsa listboxda o satırı seçili hale mi getirmek istiyorsunuz?

Textboxa yazdığıma göre arama yaptırıyorum. Arama bittikten sonra Listboxı kilitlemek istiyorum. Aslında Listboxa tıklamayı engellemek istedim olmayınca kilitlemeye çalıştım. Textboxa rakam girince oluyor fakat metin yazınca kilitleme için yazdığım kod çalışmıyor.

Bu arada arama sonucuna göre listboxta o satırı seçili hale getirme konusunu da yazarsanız sevinirim.
 
Öncelikle, gerekmedikçe mesajlardan alıntı yapmanıza gerek yok.

Listboxda nasıl arıyorsunuz verdiğiniz kodlarda görülmüyor.
Aşağıda TextBox içeriğini ListBox da arayan ve bulunca Listbox kilitleyen bir örnek var.
Aradığınızı umarım budur.

C++:
For i=1 To ListBox1.ListCount
   if adara.Value=Listbox1.ListIndex(i-1) then
      ListBox1.ListIndex=i-1
      ListBox1.Locked=True
      Exit For
   End if
Next i
 
Ömer bey merhaba, kodu denedim fakat hata verdi çalışmadı. Örnek dosya aşağıdaki linkte bakabilirseniz sevinirim.

 
Merhaba
C++:
Private Sub adara_Change()
For i = 1 To ListBox1.ListCount
   If UCase(adara.Value) = UCase(ListBox1.List(i - 1, 2)) Then
      ListBox1.ListIndex = i - 1
      ListBox1.Locked = True
      Exit For
   End If
Next i
End Sub
 
Ömer Faruk bey, elinize sağlık çok güzel olmuş. Özür dileyerek bir şey daha istesem olur mu? adara kutusuna yazdığımız tam eşleşirse buluyor acaba yazdığımız kadarıyla ilk eşleşene gitse olur mu? Örneğin; Metin ismini aratmak istediğimde ben daha "Met" yazdığımda eşleşen ilk satıra gitse ve ben yazmaya devam ettikçe bu döngü devam etse bunu yapabilir miyiz? Tekrar teşekkürler.
 
Deneyiniz.

C++:
Private Sub adara_Change()
    Dim i As Long
    
    ListBox1.Locked = False
    ListBox1.ListIndex = -1

    For i = 1 To 6
        Me.Controls("TextBox" & i) = ""
    Next

    If Len(adara.Value) > 0 Then
        For i = 1 To ListBox1.ListCount
           If Left(UCase(Replace(Replace(ListBox1.List(i - 1, 2), "ı", "I"), "i", "İ")), Len(adara.Value)) = _
              UCase(Replace(Replace(adara.Value, "ı", "I"), "i", "İ")) Then
              ListBox1.ListIndex = i - 1
              ListBox1.Locked = True
              Exit For
           End If
        Next i
    End If
End Sub
 
Korhan Ayhan bey elinize sağlık tam istediğim gibi olmuş teşekkür ederim.
 
Çok özür dileyerek bir şey daha sormak istiyorum. Aynı mantıkta çalışması şartıyla aradığımız bilginin olduğu satıra gitmek yerine aradığımız bilginin eşleştiği bütün satırları süzerek Listbox üzerinde göstermesini yapabilir miyiz? Örneğin; adara textboxuna "Metin" yazdığımda içinde metin geçen tüm satırlar Listbox üzerinde listelensin.

NOT: Benim aktif kullandığım tabloda 71 sütun var o yüzden farklı arama kriterlerine ihtiyacım olabilir. Eğer bu tarz da bir arama yapabilirsek tüm sorunlarım çözülmüş olur.
 
Teşekkür ederim.
 
Geri
Üst