Çözüldü UserForm Üzerindeki TextBox Nesnesinden Hızlı Arama

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

mhezer

Site Üyesi
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba Değerli Hocalarım. Yapmak istediğim işlem Cadde ve Sokak UserForm üzerindeki TextBoxdan hızlı arama işlemi yapabilmek. Bu işlem için araştırma yaptım ama istediğim bir sonucu elde edemedim.

Yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Çözüm
@mhezer

Hem userformdaki TEZTBOX'a yazınca filtreleme/arama sonuçlarının L-R sütunlarına listelenmesini istiyorsunuz, hem de yine aynı alanda FORMÜL kullanarak listeleme yapmak istiyorsunuz.

-- Aranacak kelime/sayı her neyse onu J6 hücresine yazın (başında/sonunda * karakteri olmadan) .
-- L6 hücresine şu formülü uygulayın
=FİLTRE(B6:H21;ESAYIYSA(BUL($J$6;$B$6:$B$21))+ESAYIYSA(BUL($J$6;$C$6:$C$21))>0)

Ancak userformu açıp arama işlemini oradan yapmak isterseniz,
sonuçlar yine L6'dan itibaren listeleneceğinden, formül silinecektir.
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
    74.5 KB · Görüntüleme: 6
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:
İçeriği görüntülemek için giriş yapmalısınız
(19 satır)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Site Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
24
Üst