• DİKKAT

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

Arama Kutusu

Katılım
9 Temmuz 2012
Mesajlar
106
Excel Vers. ve Dili
Excel 2007 - Türkçe
arama kutusunda hiçbir optionbutton'a seçmeden arama yaptığımızda bütün verilere göre arıyor fakat sonucu 1 tane olduğu halde 3 tane gösteriyor yani hiçbir optionbutton seçili değil iken Ali yazdığımızda aynı satırı 3 tane olarak gösteriyor bunu nasıl halledebilir yardımcı olabilir misiniz?
 

Ekli dosyalar

Merhaba,

Arama işlemini veri olan tüm alanda yaptığınız için birden fazla kayıt listeleniyor. Çünkü mail adresindeki isimleride buluyor. Ve satır kontrolü yapmadığınız için onlarıda farklı veri gibi algılayıp listeleme yapıyor. Arama işlemini yapan kodunuzu aşağıdaki gibi değiştirip deneyin.

Kod:
Private Sub ComboBox1_Change()
    Dim SÜT As Variant, BUL As Range, SAB As Variant, S1 As Worksheet
    Dim SAY As Long, sutun As Long, LSAY As Long, X As Long, Satir As Long
    On Error Resume Next
    SÜT = 0
    If ComboBox1 <> Empty Then
    ListBox1.RowSource = ""
    ListBox1.ColumnCount = 0
    If OptionButton1 = True Then SÜT = "B"
    If OptionButton2 = True Then SÜT = "C"
    If OptionButton3 = True Then SÜT = "D"
    With WorksheetFunction
    Set S1 = Sheets("DATA")
    LSAY = 0
    sutun = S1.Cells(1, Columns.Count).End(1).Column
    ListBox1.ColumnCount = sutun
    ListBox1.AddItem
    For SAY = 1 To sutun
    ListBox1.List(LSAY, SAY - 1) = S1.Cells(1, SAY)
    Next
    ListBox1.ColumnHeads = True
    
    If SÜT = 0 Then
    Set BUL = S1.Range("A:L").Find("*" & ComboBox1 & "*", , , xlWhole)
    Else
    Set BUL = S1.Range(SÜT & ":" & SÜT).Find(ComboBox1, , , xlWhole)
    End If
    
    If Not BUL Is Nothing Then
    SAB = BUL.Address
    Satir = BUL.Row
    Do
    ListBox1.AddItem
    X = 0
    For SAY = 1 To sutun
    ListBox1.List(LSAY + 1, X) = S1.Cells(BUL.Row, SAY).Value
    X = X + 1
    Next
    LSAY = LSAY + 1
    
    If SÜT = 0 Then
    Set BUL = S1.Range("A:L").FindNext(BUL)
    Else
    Set BUL = S1.Range(SÜT & ":" & SÜT).FindNext(BUL)
    End If
    
    Loop While Not BUL Is Nothing And BUL.Address <> SAB And BUL.Row <> Satir
    End If
    End With
    Else
    UserForm_Initialize
    End If
End Sub
 
Merhaba,

Arama işlemini veri olan tüm alanda yaptığınız için birden fazla kayıt listeleniyor. Çünkü mail adresindeki isimleride buluyor. Ve satır kontrolü yapmadığınız için onlarıda farklı veri gibi algılayıp listeleme yapıyor. Arama işlemini yapan kodunuzu aşağıdaki gibi değiştirip deneyin.

Teşekkür ederim vermiş olduğunuz kodları yerleştirince sorun halloldu.
 
Geri
Üst