- Katılım
- 15 Mart 2005
- Mesajlar
- 42,307
- Excel Vers. ve Dili
- Microsoft 365 Tr-En 64 Bit
Selamlar,
Sn. tahsinanarat,
İşlemi hızlandırmak için D sütununu yardımcı sütun olarak kullanarak farklı bir örnek dosya hazırladım. İncelermisiniz.
65.000 satır veri üzerinde kendi bilgisayarımda denedim. İşlem süresi yaklaşık 20-25 saniye sürüyor.
Sanırım ADO yöntemi kullanılarak bu süre dahada kısaltılabilir.
Kullanılan kod; (Sayfanın kod bölümüne uygulayınız.)
Sn. tahsinanarat,
İşlemi hızlandırmak için D sütununu yardımcı sütun olarak kullanarak farklı bir örnek dosya hazırladım. İncelermisiniz.
65.000 satır veri üzerinde kendi bilgisayarımda denedim. İşlem süresi yaklaşık 20-25 saniye sürüyor.
Sanırım ADO yöntemi kullanılarak bu süre dahada kısaltılabilir.
Kullanılan kod; (Sayfanın kod bölümüne uygulayınız.)
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim AYIR() As String
Dim X As Long, Y As Integer, SAY As Integer
If Intersect(Target, [A1,B1,C1]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
If Target <> Empty Then
Target.Activate
AYIR = Split(Target, " ")
For X = 3 To Range("A1").CurrentRegion.Rows.Count
SAY = 0
For Y = 0 To UBound(AYIR())
If UCase(Replace((Replace(Cells(X, Target.Column), "i", "İ")), "ı", "I")) Like "*" & UCase(Replace((Replace(AYIR(Y), "i", "İ")), "ı", "I")) & "*" Then SAY = SAY + 1
Next
If SAY <> (UBound(AYIR()) + 1) Then
Cells(X, "D") = False
Else
Cells(X, "D") = True
End If
Next
[A2].AutoFilter Field:=4, Criteria1:=True
Application.ScreenUpdating = True
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
Else
If ActiveSheet.AutoFilterMode = True Then [A2].AutoFilter
[D3:D65536].ClearContents
Application.ScreenUpdating = True
End If
End Sub
Ekli dosyalar
-
48.3 KB Görüntüleme: 27