• DİKKAT

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

listwiev benzersiz filtreleme hk.

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,676
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
merhaba,
Verıtabanı sayfası I sutununda bulunan isimleri benzersiz filtrelemek istiyorum. Countıf ekledim ama olmadı
yardımlarınız için teşekkür ederim.
Kod:
Private Sub TextBox1_Change()
Set SH = Sheets("VERITABANI")
Application.ScreenUpdating = False
ListView1.ListItems.Clear
ListView1.FullRowSelect = True
Dim i As Long
With ListView1
For i = 2 To SH.Cells(65536, "a").End(xlUp).Row
If UCase(Replace(Replace(SH.Cells(i, "I").Value, "ı", "I"), "i", "İ")) _
    Like "*" & TextBox1.Value & "*" _
    And WorksheetFunction.CountIf(SH.Range("I2:I")) = 1 Then
    
    
   .ListItems.Add , , SH.Cells(i, "I")
        X = X + 1
 
      
        .ListItems(X).ListSubItems.Add , , SH.Cells(i, "J")
        .ListItems(X).ListSubItems.Add , , SH.Cells(i, "K")
        .ListItems(X).ListSubItems.Add , , SH.Cells(i, "G")
        
    End If

Next i
End With
Set SR = Nothing

Application.ScreenUpdating = True

End Sub
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,676
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Aşağıdaki şekilde de hata veriyor
Kod:
If UCase(Replace(Replace(SH.Cells(i, "I").Value, "ı", "I"), "i", "İ")) _
    Like "*" & TextBox1.Value & "*" _
 And WorksheetsFunction.CountIf(SH.Range("I:I"), 1) Then
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Kod:
Private Sub TextBox1_Change()
    Dim SH As Worksheet
    Dim i As Long
    Dim X As Long
    Dim uniqueNames As Collection
    Dim name As Variant

    Set SH = Sheets("VERITABANI")
    Set uniqueNames = New Collection

    Application.ScreenUpdating = False
    ListView1.ListItems.Clear
    ListView1.FullRowSelect = True

    ' Sütun I'deki her hücre üzerinde döngü
    For i = 2 To SH.Cells(65536, "I").End(xlUp).Row
        ' Büyük harfe çevir ve Türkçe karakterleri değiştir
        name = UCase(Replace(Replace(SH.Cells(i, "I").Value, "ı", "I"), "i", "İ"))

        ' İsim TextBox1'deki değeri içeriyorsa
        If InStr(name, UCase(TextBox1.Value)) > 0 Then
            ' İsim benzersizse
            On Error Resume Next
            uniqueNames.Add name, CStr(name)
            On Error GoTo 0

            If Err.Number = 0 Then ' İsim benzersiz
                With ListView1
                    ' ListView'e benzersiz ismi ekle
                    X = X + 1
                    .ListItems.Add , , name
                    .ListItems(X).ListSubItems.Add , , SH.Cells(i, "J")
                    .ListItems(X).ListSubItems.Add , , SH.Cells(i, "K")
                    .ListItems(X).ListSubItems.Add , , SH.Cells(i, "G")
                End With
            End If
        End If
    Next i

    Set SH = Nothing
    Set uniqueNames = Nothing
    Application.ScreenUpdating = True
End Sub
Deneyiniz.
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,676
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Çok teşekkür ederim.
Selametle kalınız
 
Üst