UserForm Üzerindeki TextBox Nesnesinden Hızlı Arama

UserForm Üzerindeki TextBox Nesnesinden Hızlı Arama

  • Konuyu başlatan Konuyu başlatan mhezer
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

mhezer

Kullanıcı
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
Türkçe

Ekli dosyalar

Muhtarlık isimlerini neden açılır listeden seçmeyi düşünmüyorsunuz?

Diyelim mevcut yapıda muhtarlık adı için txtMuhtarlikAdi textboxuna TEP yazdınız.
Yazdığım mevcut kod, açılacak küçük userformda hem ALTINTEPE hem de İDEALTEPE muhtarlıklarına ait cadde/sokak isimlerinin listelenmesini sağlar.
Açılır listeden seçim yapılırsa sadece, seçilen muhtarlığa ait cadde sokaklar listelenmiş olur.
 
Hocam, Muhtarlık isimi kullandığım Seçmen Listesinde ayrı bir başlık altında bulunmakta. Seçmen mahalle değiştirmiş olabilir. İlk aşamada bu kısımda mevcut muhtarlık isimi gelecek. Eğer değişiklik olmuşsa buradan yeni muhtarlık bildi kayıt edilecek.
 
Merhaba @Ömer BARAN Hocam, Ekli dosyamda Records sayfası üzerinden Form açıp adres textboxa mahalle adının ilk üç harfini girdiğimde ekrana Cadde ve Sokaklara ait form gelliyor. Açılan formda TextBox1 kutusuna hızlı arama ile Cadde ve Sokak isimlerini süzmek istiyorum. Cadde ve Sokak sayfasındaki ekli kodları "DataBase" sayfası seçili iken çalıştırdığımda TextBox1 hızlı arama çalışıyor. Ancak, "frm_kurul" formu üzerinden çalıştırdığımda hızlı süz işlemi olmuyor.
 

Ekli dosyalar

Yanlış mı anladım emin değilim ama;
TextBox1_Change kodunda For...Next döngüsünün içinde 2 yerde bulunan
Cells(i, "J") ibaresini Sheets("DataBase").Cells(i, "J") olarak değiştirip deneyin.
 
Hocam, UserForm üxerinden "txtAdress_DblClick" yaptığımda açılan formda süz çalışıyor. Ancak, "txtAdress" textboxa mahallenin üç harfini yazdığımda açılan formda süz çalışmıyor.
 
Merhaba Hocam,
UserForm üzerinden ListBoxtaki veriye tıkladığımda sayfaya Cadde ve Sokak isileri formu açılıyor. Nedenini anlayamadım. Kontrol ediyorum bir sorun görünmüyor.
 

Ekli dosyalar

  • Ekran görüntüsü 2024-01-03 225646.webp
    Ekran görüntüsü 2024-01-03 225646.webp
    73.9 KB · Görüntüleme: 40
Büyük Listbox'a tıklandığında, Listbox satırındaki bilgiler, üst taraftaki nesnelere yazdırılıyordur.
Üstteki nesnelere ait ...._Change kodlarından biri/birkaçı da küçük userformun açılmasını sağlıyordur.
Listbox_SelectionChange koduna ilk satır olarak
Application.EnableEvents = 0
son satır olarak da
Application.EnableEvents = 1
satırını ekleyin.

Her zaman derim; yazılmış kodları onarmak/değişiklikler yapmak,
kodların sıfırdan yazılmasından zordur.
İlave edilen kodların, eski kodlarla etkileşimleri her zaman görülemeyebilir.
 
Hocam, Verdiğiniz bilgi için teşekkür ediyorum. Ancak, Records sayfsının Worksheet_SelectionChange kısmına dediğiniz gibi yaptığımda bir değişiklik olmadı.
 
Private Sub txtAdress_Change()
If Len(txtAdress) < 3 Then Exit Sub
On Error Resume Next

v = Sheets("DataBase").Range("I4:J" & Sheets("DataBase").Cells(Rows.Count, 10).End(3).Row).Value
ReDim liste(1 To 1)
For a = LBound(v) To UBound(v)
varmi1 = InStr(v(a, 1), UCase(Replace(Replace(txtAdress, "ı", "I"), "i", "İ")))
varmi2 = Application.Match(v(a, 2), liste, 0)
If varmi1 > 0 And Not IsNumeric(varmi2) Then
s = s + 1: ReDim Preserve liste(1 To s): liste(s) = v(a, 2)
End If
Next
frm_CaddeSokak.ListBox1.List = liste
'frm_CaddeSokak.Show

End Sub

Merhaba @Ömer BARAN Hocam, İşaretli satırı kaldırınca problem gitti. Ancak, bu defada Form açılmadığı için ekrana Caddde ve Sokak isimleri gelmiyor. txtAdress kutusu ListBoxdan seçimle dolunca makro tetikleniyor.
 
Dediğim gibi tamirat/ekleme işi zordur.
O zaman; listbox'a tıklandığında doldurulan ama mahalle adı seçimi ve/veya cadde sokak seçimiyle doldurulanlar dışında bir nesne dolu/boş kontrolünden geçirmeyi düşünün.

Şöyle: listboxa tıklamadan mahalle/cadde-sokak seçiminde sorun yok ve bu esnada diyelim kişinin telefon bilgisi alanı boşi listboxa tıklandığında ise telefon bilgisinin yazıldığı nesne dolu (mutlaka dolu olacak başka bir nesne üzerinden de düşünebilirsiniz).
Bu durumda küçük formun açılmasını sağlayan kodların başına
If telefon_no.text<>"" then exit sub
gibi bir ekleme yapmayı deneyebilirsiniz.
Tabi telefon_no nesnesini, listbox_selection_change kodunun ilk satırında doldurmanız da yerinde olur.

Ya da bunların tümünün yerine PUBLIC (True/False) bir değişken tanımlaması yapıp.
Listbox seçiminde ilk önce bu değişkene FALSE değerini verirsiniz, listbox kodunun sonunda da değeri TRUE yaparsınız. Küçük formu açan kodlarda da bu değişken FALSE mi diye bir IF.....Exit sub satırı oluşturup küçük formun açılışını durdurursunuz.

Tekrarlayayım, tamirat zordur.
Böyle karmaşık/çok nesneli kaydet/düzelt, şu formu aç, yazarken filtrele vs karmaşık belgelerde
akışın iyi planlanması, kodların tek elden çıkması en doğrusu.
 
Merhaba değerli arkadaşlarım,
Ekli dosyamda formüller, Ad Yöneticisi altında "HASILCARI" isimli bir formül oluşturdum. Bu formül ile User Form üzerinde bulunan TXTCARI TextBox üzerinden süz işlemi yaparak TABELDATA ListBox'ında verileri süzmek istiyorum. ListBox üzerine formüller, Ad Yöneticisi altında "DATAKONTAK" isimli Kaydır, Bağ_Dolu_Say formülü ile veriyi "KONTAK" sayfasından LisitBox üzerine alıyorum. Süz işlemi için değerli yardımlarınızı bekliyorum

Teşekkür ederim.
 

Ekli dosyalar

@mhezer

Userform'da, TEXTBOX'un içinde duran LABEL nesnesini SİLİN.

Arama B ve C sütununa göre yapılır.
Yani yazılan metinle B veya C sütununda İÇERİR şeklinde varsa
ilgili satırdaki veriler L-R sütunlarına aktarılır (userformdaki LISTBOX nesnesinde değişiklik olmaz) .
TEXTBOX'a küçük/büyük harf yazılmasının bir önemi yok, her iki türlü de yazılabilir.

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(19 satır)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst