Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 23-05-2013, 07:36   #1
monelogg
Altın Üye
 
monelogg kullanıcısının avatarı
 
Giriş: 23/04/2011
Şehir: Sakarya
Mesaj: 284
Excel Vers. ve Dili:
Excel 2010 - Türkçe
Varsayılan TextBox'ta yazan veriyi ListBox'da Aratma

Merhaba, TextBox'a harf/sayı/karakter yazdığım zaman o TextBox içeriğini ListBox verilerinden bulup, aynı ListBox'a getirsin istiyorum. Ayrıca,
TextBox1'in içeriğini sildiğimde tüm veri geri gelsin. Sadece boşluk girildiğinde aratmasın. Forumda bir iki bilgi buldum ama işin içinden çıkamadım. Bu konuda yardımcı olabilirseniz çok sevinirim.
Eklenmiş Dosyalar
Dosya Türü: zip textbox-listbox.zip (13.9 KB, 21 Görüntülenme)
monelogg Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 08:51   #2
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,571
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Dosyanız ektedir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub TextBox1_Change()
Dim i As Long, sat As Long, deg As String, x As Long
sat = Sheets("Sayfa1").Cells(Rows.Count, "A").End(xlUp).Row
ListBox1.RowSource = ""
txtbx = UCase(Replace(Replace(TextBox1.Text, "i", "İ"), "ı", "I"))
For i = 1 To sat
    deg = UCase(Replace(Replace(Cells(i, "A").Value, "i", "İ"), "ı", "I"))
    If UCase(Replace(Replace(deg, "i", "İ"), "ı", "I")) Like "*" & txtbx & "*" Then
        ListBox1.AddItem Cells(i, "A").Value
    End If
Next i
    
End Sub
Eklenmiş Dosyalar
Dosya Türü: xlsm textbox ile listbox verilerini arama59.xlsm (18.3 KB, 58 Görüntülenme)
__________________
evrengizlen@hotmail.com

KOD ANLATILMAZ,YAZILIR!
Bir sümer atasözü;
Madem biliyorsun neden öğretmiyorsun.Boşa vakit geçirdin neye yaradı.
Orion1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 09:01   #3
mancubus
Destek Ekibi
 
mancubus kullanıcısının avatarı
 
Giriş: 06/01/2010
Şehir: İ>S>T>A>N>B>U>L
Mesaj: 2,045
Excel Vers. ve Dili:
İŞ: 2013 Eng EV: 2016 Eng
Varsayılan

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub TextBox1_Change()

    Dim sds As Long, j As Long
    
    ListBox1.Clear
    With Sheets("Sayfa1")
        sds = .Range("A" & .Rows.Count).End(xlUp).Row
        Select Case TextBox1.Value
            Case Is = " "
                ListBox1.Clear
            Case Is = ""
                ListBox1.List = .Range("A1:A" & sds).Value
            Case Else
                For j = 1 To sds
                    If InStr(1, .Cells(j, 1).Value, TextBox1.Value) > 0 Then
                        ListBox1.AddItem .Cells(j, 1).Value
                    End If
                Next j
        End Select
    End With
End Sub
mancubus Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 13:22   #4
monelogg
Altın Üye
 
monelogg kullanıcısının avatarı
 
Giriş: 23/04/2011
Şehir: Sakarya
Mesaj: 284
Excel Vers. ve Dili:
Excel 2010 - Türkçe
Varsayılan

Sn. Orion1 ve Sn. mancubus cevaplarınız için çok teşekkür ederim iki kod da gayet güzel bir şekilde çalışıyor.


Kodlarla ilgili anlayamadığım iki sorum vardı onlara da bakabilen olursa çok sevinirim:

Sn. Orion1'in yazdığı kodun aşağıdaki satırını başka bir kodun içinde de bulmuştum ama nasıl çalıştığını hiç anlayamadım. Ayrıca i var I var onlar ne işe yarıyor?

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
    deg = UCase(Replace(Replace(Cells(i, "A").Value, "i", "İ"), "ı", "I"))
Sn. mancubus'un yazdığı kodda da şu satırı açıklayabilirseniz çok sevinirim.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
      If InStr(1, .Cells(j, 1).Value, TextBox1.Value) > 0 Then
monelogg Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 15:51   #5
Orion1
Uzman
 
Orion1 kullanıcısının avatarı
 
Giriş: 01/03/2005
Mesaj: 19,571
Excel Vers. ve Dili:
Win7 Home Basic TR 64 Bit Ofis-2010-TR 32 Bit
Varsayılan

Ucase ile değişkenin içinde verileri büyütüp,replace ilede i leri İ,ı ları I yapıyor.
Türkçe versiyon windowslarda sorun çıkmıyor ama ingilizce sürümlerde bu karakterlerde sorun yaşanıyor.
Onun için replace ile değiştiriyoruz.
__________________
evrengizlen@hotmail.com

KOD ANLATILMAZ,YAZILIR!
Bir sümer atasözü;
Madem biliyorsun neden öğretmiyorsun.Boşa vakit geçirdin neye yaradı.
Orion1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 19:57   #6
mancubus
Destek Ekibi
 
mancubus kullanıcısının avatarı
 
Giriş: 06/01/2010
Şehir: İ>S>T>A>N>B>U>L
Mesaj: 2,045
Excel Vers. ve Dili:
İŞ: 2013 Eng EV: 2016 Eng
Varsayılan

böyle konunun içinde kalarak çözüm üretmeye çalışırken yazılmış cevaplar varsa göremiyorsunuz. bu aralar 2. oldu benim için.

InStr fonksiyonu FIND (bul) ve SEARCH (mbul) fonksiyonlarının VBA'deki karşılığıdır diyebiliriz.

bir metin içerisinde, sol taraftan başka bir metin arayarak, bulduğu takdirde ilk bulduğu yerin metin içindeki sıra numarasını döndürür. bulamaz ise 0 rakamı döner.

yani fonksiyon sonucu 0'dan büyük ise aranan metin bulunmuş demektir. If ile bunu test ediyoruz. hücrede yer alan metinlerde TextBox1'e yazdığımız metin var mı. 0'dan büyük ise var demektir.

InStr(Başlangıç, Metin, AltMetin, Karşılaştırma)
Başlangıç: kaçıncı karakterden itibaren arama yapılacağı. default değer 1'dir. yazılmasına da gerek yoktur aslında.
Metin: içinde arama yapılacak metin
AltMetin: aranacak metin
Karşılaştırma: aramanın büyük harf - küçük harf duyarlı olup olmayacağı. default değer 0 yani duyarlı olup yazılmasına gerek yoktur. FIND-BUL gibi. 1 yazılır ise duyarsız olur. SEARCH-MBUL gibi.
mancubus Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-05-2013, 20:07   #7
monelogg
Altın Üye
 
monelogg kullanıcısının avatarı
 
Giriş: 23/04/2011
Şehir: Sakarya
Mesaj: 284
Excel Vers. ve Dili:
Excel 2010 - Türkçe
Varsayılan

Sn. Orion1 ve Sn. mancubus cevaplarınız için çok çok teşekkür ediyorum, çok sağ olun...
monelogg Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-05-2017, 23:31   #8
muratkayabasi82
Altın Üye
 
Giriş: 09/08/2014
Mesaj: 71
Excel Vers. ve Dili:
2013 türkçe
Varsayılan

Alıntı:
Orion1 tarafından gönderildi Mesajı Görüntüle
Dosyanız ektedir.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub TextBox1_Change()
Dim i As Long, sat As Long, deg As String, x As Long
sat = Sheets("Sayfa1").Cells(Rows.Count, "A").End(xlUp).Row
ListBox1.RowSource = ""
txtbx = UCase(Replace(Replace(TextBox1.Text, "i", "İ"), "ı", "I"))
For i = 1 To sat
    deg = UCase(Replace(Replace(Cells(i, "A").Value, "i", "İ"), "ı", "I"))
    If UCase(Replace(Replace(deg, "i", "İ"), "ı", "I")) Like "*" & txtbx & "*" Then
        ListBox1.AddItem Cells(i, "A").Value
    End If
Next i
    
End Sub
hocam sizin formüle göre yaptım çok işe yaradı ancak bende 6 sütun var. Listboxa bunlar da geliyor ancak textboxa yazmaya başladığımda bulunan 1 tane oluyor. Uğraştım yapamadım.
Eklenmiş Dosyalar
Dosya Türü: xls textbox ile ara bul - 111.xls (86.5 KB, 7 Görüntülenme)
muratkayabasi82 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-05-2017, 07:51   #9
Mahmut Bayram
Özel Üye
 
Giriş: 25/06/2005
Mesaj: 1,667
Excel Vers. ve Dili:
2007 Excel Tr
Varsayılan

Tablolarınız alt alta eklenirse istediğiniz işlem gerçekleşir.
Ekteki gibi ...
http://www.filebig.net/files/8Ue8DhSj32
Aksi takdirde ilave kod yazmak gerekir.
Mahmut Bayram Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-05-2017, 08:14   #10
muratkayabasi82
Altın Üye
 
Giriş: 09/08/2014
Mesaj: 71
Excel Vers. ve Dili:
2013 türkçe
Varsayılan

Tablolar aslında 30 tane. 10×3 şeklinde. Yani alt alta olması benim için uygun olmayacak. Bu şekilde yapılamaz mi?
muratkayabasi82 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 10:30


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Torna - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Hurda - Lingerie - Dyeing Machine - Çorlu Temizlik- Karton Bardak- Çorlu Pimapenci- İstanbul Avukat- Çorlu Kekemelik- Edirne Su Arıtma- Çorlu Perde Yıkama- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Çorlu İnşaat- Marmara Ereğlisi Yurt- Çorlu Solucan Gübresi- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Su Deposu Temizliği- Bakır Sülfat- Rampa- Rotary-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden