• DİKKAT

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

arama hücresi

  • Konbuyu başlatan Konbuyu başlatan gkhn2
  • Başlangıç tarihi Başlangıç tarihi
Katılım
20 Aralık 2013
Mesajlar
195
Excel Vers. ve Dili
Microsoft Office Standart 2013 - Microsoft Windows 10 Enterprise
merhabalar

linkteki dosyada Sayfa1'deki A1 hücresine 2-3 harf ya da rakam yazdığımda Sayfa2'deki A sütunundaki verilerde buluyorsa seçmek için alta açılan menü çıkarmasını istiyorum. Mümkün müdür?

Örnekteki gibi
NkXNMO.jpg



http://dosya.co/umebsyy8h5bp/SQL_ÇALIŞMA.xlsx.html
 
altın üyeliğimiz bittiği için dosyayı indiremedim
 
Tekrar merhaba.

Hazırladığım belgeye erişim için harici bağlantı ekledim.
İlgili konu sayfasındaki 2 numaralı cevaba bakınız.
.
 
teşekkür ederim deneme yapayım hemen
 
Sayfa2 deki B sütununda arama yapması için kodda nereyi değiştirmem lazım
 
şimdi de böyle bir hata aldım
A3Mjq0.png
 
Merhaba.

Aşağıda kırmızı işaretlediğim kısma ilgili sayfa adını yazmanızın yeterli olması lazım.

Ben, son cevabınızdaki gibi bir hata almıyorum.
Ekrana gelen hata mesajındaki DEBUG düğmesine tıkladığınızda kod'da sarı boyanan satır hangisi acaba?
.
Kod:
[FONT="Arial Narrow"][B][COLOR="Blue"]Private Sub TextBox1_Change()[/COLOR][/B]
With TextBox1
    .Top = [A1].Top: .Left = [A1].Left: .Width = [A1].Width: .Height = [A1].Height
        End With
            If TextBox1 = "" Then
                ListBox1.Clear: ListBox1.Height = 0: Exit Sub
                    End If
                        ListBox1.Visible = True: ListBox1.Clear: ListBox1.Height = 0
                    For brn = 1 To 12
                If  [COLOR="Red"][B]Sheets(".......").[/B][/COLOR]Cells(brn, "[B][COLOR="Red"]E[/COLOR][/B]") Like "*" & TextBox1 & "*" Then
            ListBox1.AddItem [COLOR="red"][B]Sheets(".......").[/B][/COLOR]Cells(brn, "[B][COLOR="red"]E[/COLOR][/B]")
        End If
    ListBox1.Height = 13 * (ListBox1.ListCount) + 8: ListBox1.Width = [A1].Width
Next
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
istediğim sayfa2 deki b sütununun tamamında arama yapması


önceki hata bu satırda

Cells(1, 1) = ListBox1.Column(0)

şimdi de bu hatayı verdi

Private Sub TextBox1_Change()
With TextBox1
.Top = [A1].Top: .Left = [A1].Left: .Width = [A1].Width: .Height = [A1].Height
End With
If TextBox1 = "" Then
ListBox1.Clear: ListBox1.Height = 0: Exit Sub
End If
ListBox1.Visible = True: ListBox1.Clear: ListBox1.Height = 0
For brn = 1 To 12
If Sheets("sayfa2").Cells(brn, "E") Like "*" & TextBox1 & "*" Then
ListBox1.AddItem Sheets("sayfa2").Cells(brn, "E")
End If
ListBox1.Height = 13 * (ListBox1.ListCount) + 8: ListBox1.Width = [A1].Width
Next
End Sub
 
İsterseniz, sorunlu haliyle gerçek belgenizin bir örneğine ulaşılmasını sağlayın.
 
Veri arama ile ilgili güzel bir şablon yapmıştım daha önce ; bütün kitap içinde giriş sayfasının üst tarafındaki textbox ve option buton ile Find methodu ile arama yapılabiliyor. Bulunan sonuçlar yeni bir sayfada adresleri ile listeleniyor ve arama sonuçlarına köprüler oluşturuluyor.

Şablonun Videosu :[YOUTUBE]https://youtu.be/FAeOSWYKqqE[/YOUTUBE]
search_entire_workbook.jpg


Dosya buradan indirilebilir
 
kadri güler çok güzel bir çalışma fakat benim istediğim sayfa1 de bir arama alanı olacak oraya yazdığım veri sayfa2 deki bir sütunda arayıp bulmasını eğer varsa o hücreye yazmasını istiyorum

aslına ömer bey'in yaptığı işimi görüyor fakat çalıştıramadım
 
İsterseniz, sorunlu haliyle gerçek belgenizin bir örneğine ulaşılmasını sağlayın.

Ömer bey sonunda çalıştırdım fakat verileri sql den çektiğim için parametre tanımlamıştım o yüzden olmadı.

eğer textbox a yazdığım VE seçtiğimi b1 e kopyalarsa sonra tekrar yazınca b1 dekini değiştirirse olabilir. yani yazdığım silinince canlı tablolar karışıyor
 
Merhaba.

Aşağıda kırmızı işaretlediğim kısma ilgili sayfa adını yazmanızın yeterli olması lazım.

Ben, son cevabınızdaki gibi bir hata almıyorum.
Ekrana gelen hata mesajındaki DEBUG düğmesine tıkladığınızda kod'da sarı boyanan satır hangisi acaba?
Private Sub TextBox1_Change()[/COLOR][/B]
With TextBox1
.Top = [A1].Top: .Left = [A1].Left: .Width = [A1].Width: .Height = [A1].Height
End With
If TextBox1 = "" Then
ListBox1.Clear: ListBox1.Height = 0: Exit Sub
End If
ListBox1.Visible = True: ListBox1.Clear: ListBox1.Height = 0
For brn = 1 To 12
If Sheets(".......").Cells(brn, "E") Like "*" & TextBox1 & "*" Then
ListBox1.AddItem Sheets(".......").Cells(brn, "E")
End If
ListBox1.Height = 13 * (ListBox1.ListCount) + 8: ListBox1.Width = [A1].Width
Next
End Sub
[/CODE]

Bu vermiş olduğunuz kodu ile İsim listesinden arama yapıyorum. Listede isimler "İsim SOYİSİM" şeklinde yazılı. fakat arama yapan kişi küçük harfler ile arama yapacak. Aranacaklar listesinde de küçükharfle arama yapılsın diye kodu şu şekilde değiştirdim.

Kod:
If  LCase(Sheets(".......").Cells(brn, "E")) Like "*" & TextBox1 & "*" Then

Fakat şu an hücreye "isim" şeklinde yazıldığında "İsim" değeri ile eşleşmiyor.
muhtemelen lcase ingilizce alfabeye göre çalışıyor. Benzer şekilde kullanıcı büyük harflerle arama yapınca da sonuç bulunmuyor.
Bunu aşmanın bir yolu varmı. "Like" karşılaştırmasında büyük-küçük harf duyarlılığını aşabilir miyiz ayrıca İ-i, I-ı harflerini doğru olarak nasıl karşılaştırabiliriz?

EDİT:
denemek için İnci BİLGİN ismini kullandım.
kodu şu şekilde çalıştırınca sorunsuz çalışıyor, tabi eğer kişi sadece küçük harflerle arama yapıyorsa.

Kod:
If  LCase(replace(replace(Cells(brn, "E"),"İ","i"),"I","ı") Like "*" & TextBox1 & "*" Then

Daha etkili bir çözümü olan var mı?
Kodun bu halde düzgün çalışabilmesi için Textbox'a büyük harf girilmesini nasıl engelleyebilirim.

Bu kodu deneyiniz.
Private Sub TextBox1_Change()
TextBox1 = Evaluate("=UPPER(""" & TextBox1 & """)")
End Sub
Şu kodu buldum ama çalışmadı.
Bende textboxun change olayına otomatik küçültme eklemeye karar verdim.

Kod:
Private Sub TextBox1_Change()
TextBox1 = LCase(Replace(Replace(TextBox1, "İ", "i"), "I", "ı"))
With TextBox1
.Top = [A1].Top: .Left = [A1].Left: .Width = [A1].Width: .Height = [A1].Height
End With
If TextBox1 = "" Then
       ListBox1.Clear: ListBox1.Height = 0: Exit Sub
       End If
ListBox1.Visible = True: ListBox1.Clear: ListBox1.Height = 0
For brn = 1 To 12
     If  LCase(replace(replace(Cells(brn, "E"),"İ","i"),"I","ı") Like "*" & TextBox1 & "*" Then
            ListBox1.AddItem Cells(brn, "E")
      End If
    ListBox1.Height = 13 * (ListBox1.ListCount) + 8: ListBox1.Width = [A1].Width
Next
End Sub

Artık kullanıcı ne şekilde giriş yaparsa yapsın isimler listesi de nasıl yazılırsa yazılsın hepsi küçük harfe çevrilip karşılaştırılıyor ve bulunuyor.
 
Son düzenleme:
Geri
Üst