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
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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?
 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ö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
 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Ömer bey merhaba, kodu denedim fakat hata verdi çalışmadı. Örnek dosya aşağıdaki linkte bakabilirseniz sevinirim.

 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Ö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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Korhan Ayhan bey elinize sağlık tam istediğim gibi olmuş teşekkür ederim.
 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Ç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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu linkte güzel örnekler paylaşıldı. İnceleyebilirsiniz.

 
Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Teşekkür ederim.
 
Üst