M

Çözüldü Filtrede Süzme İşlemi

  • Konuyu başlatan Konuyu başlatan muhsar
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

muhsar

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sub filtrele()

ActiveSheet.Unprotect "1"

Dim arr1, arr2, i As Integer

With Sheets("ARA")
.Range("A2:Z2").Clear
.Range("A12:Z65536").Clear

arr1 = Array("A", "B", "E", "H", "P", "Q", "O") 'O Tc icin
arr2 = Array(IIf(.Range("B4").Value = "HEPSİ", "", .Range("B4").Value), _
IIf(.Range("B8").Value = "HEPSİ", "", .Range("B8").Value), _
IIf(.Range("B7").Value = "HEPSİ", "", .Range("B7").Value), _
IIf(.Range("B6").Value = "HEPSİ", "", .Range("B6").Value), _
IIf(.Range("B5").Value = "", "", "*" & .Range("B5").Value & "*"), _
IIf(.Range("D5").Value = "", "", "*" & .Range("D5").Value & "*"), _
IIf(.Range("D4").Value = "HEPSİ", "", .Range("D4").Value)) 'Tc icin



For i = LBound(arr1) To UBound(arr1)
.Range(arr1(i) & 2).Value = arr2(i)
Next

Sheets("AKTİF_HASTA_LİSTESİ").Range("A8:Z65536").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=.Range("A1:Z2"), CopyToRange:=.Range("A12:Z12")
End With

Erase arr1: Erase arr2
ActiveSheet.Protect "1"


End Sub


merhaba;hocam yukarıdaki kodda bulunan
IIf(.Range("D4").Value = "HEPSİ", "", .Range("D4").Value)) 'Tc icin
satırına göre tc nin tamamını yazmayınca filtrede veri getirmiyor ,fakat isim soyisim de kaç karakter yazarsam ona göre filtre yapıyor
IIf(.Range("D5").Value = "", "", "*" & .Range("D5").Value & "*"), _
bu satırı kopyalayıp d5 leri d4 ile değiştirip kullanmak istediğimde hata verdi,neyi eksik yapıyor olabilirim
 
Merhaba.
Yanlış hatırlamıyorsam, daha evvel açtığınız konu için eklediğiniz belgede TC Kimlik Numarası sütununuzda veri yok idi.

Kuvvetle muhtemel, kullandığınız gerçek belgede bu sütundaki verileriniz SAYI formatında.
Bildiğim kadarıyla, SAYIlar için İÇERİR mantığıyla filtre uygulamanız mümkün görünmüyor.

Ya bu verileri METİN haline getirip kendi sütununda, ya da başka uygun bir sütunda TC Kimlik Numaralarını METİN'e dönüştürüp,
filtreyi bu METİN olan sütunda Sayın @Feyzullah Bey'in belirttiği şekilde ve D4 içeriğinin de METİN olmasını sağlayarak uygulamalısınız.
 
Merhaba.
Yanlış hatırlamıyorsam, daha evvel açtığınız konu için eklediğiniz belgede TC Kimlik Numarası sütununuzda veri yok idi.

Kuvvetle muhtemel, kullandığınız gerçek belgede bu sütundaki verileriniz SAYI formatında.
Bildiğim kadarıyla, SAYIlar için İÇERİR mantığıyla filtre uygulamanız mümkün görünmüyor.

Ya bu verileri METİN haline getirip kendi sütununda, ya da başka uygun bir sütunda TC Kimlik Numaralarını METİN'e dönüştürüp,
filtreyi bu METİN olan sütunda Sayın @Feyzullah Bey'in belirttiği şekilde ve D4 içeriğinin de METİN olmasını sağlayarak uygulamalısınız.

anladım hocam ,çok teşekkür ederim,
 
Alttaki gibide deneyebilirsiniz.Test edemedim.Bu kodları nerde olursa tanırım :)

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
A8:Z65536

Birde önceden yazsammı yazmasammı diye karar verememiştim.Yukarıdaki Z65536 daki sayıyı son diye bir değişken ile alırsanız daha iyi olur.Gelişmiş fitrelemeye hiç güvenmiyorum hız konusunda.

Range("A8:Z" & .cells(rows.count,1).end(3).row)
Böyle yapabilirsiniz mesela tabii kodu mobilden yazdım yanlışlık olabilir.
 
A8:Z65536

Birde önceden yazsammı yazmasammı diye karar verememiştim.Yukarıdaki Z65536 daki sayıyı son diye bir değişken ile alırsanız daha iyi olur.Gelişmiş fitrelemeye hiç güvenmiyorum hız konusunda.

Range("A8:Z" & .cells(rows.count,1).end(3).row)
Böyle yapabilirsiniz mesela tabii kodu mobilden yazdım yanlışlık olabilir.


Sheets("AKTİF_HASTA_LİSTESİ").Range("A8:Z65536").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=.Range("A1:Z2"), CopyToRange:=.Range("A12:Z12")
End With

hocam yine buraya ekleyebilirmiyiz,yeni halini;.Range("A8:Z65536") bu kısmı silip yeniyi yapıştırdığımda hata verdi çünkü
 
Bu şekilde dneyin Tc kimlik için Ömer hocamızın dediğini uygulayın yada öğleden sonran uğraşırım * yaptım olmadı cstr felan yapıp.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(32 satır)
 
Bu şekilde dneyin Tc kimlik için Ömer hocamızın dediğini uygulayın yada öğleden sonran uğraşırım * yaptım olmadı cstr felan yapıp.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(32 satır)


teşekkür ederim,tc için yapılabilir bişeyse mutlu olurum yoksa ömer hocamın dediğini nasıl yapabilirim onu araştırmalıyım,(baştan 2-3 rakam yazıp aramak büyük kolaylık oluyor cünkü)
 
Ömer hocamızın demek istediği O sütununu metin olarak formatlayın.Ve Feyzullah hocamızın dediği olayı uygulayın yıldız biçiminde.Dizi ilede kolau yapabiliriz bugin akşama doğru bakarım.
 
teşekkür ederim,tc için yapılabilir bişeyse mutlu olurum yoksa ömer hocamın dediğini nasıl yapabilirim onu araştırmalıyım,(baştan 2-3 rakam yazıp aramak büyük kolaylık oluyor cünkü)


hocam yukarıdaki kodları uyguladığımda sadece ilk satırı getiriyor,harf hatalarını kontrol ettim ama düzelmedi,rica etsem müsait olduğunuzda bunada bakarmısınız
 
Rica ederim.Eki inceleyebilirsiniz çalışıyor içerik olarak arama.
AKTİF_HASTA_LİSTESİ sayfası Tc sütun formatına dikkat edin metin olarak yapılacak.

IIf(.Range("D4").Value = "HEPSÝ", "", .Range("D4").Value)) 'Tc icin HEPSÝ burayı sildim mantıksız olmuş.

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

Bunlarıda ekledim koda hız için.Calculation olanları silebilirsiniz eğer hata olursa yani formüller otomatik çalışmazsa.
Calculation resimdeki ile alakalı Manual yer el ile olanı,automatic olan yerde otomatik yeri seçer.

Unbenannt.webp


VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(34 satır)
 

Ekli dosyalar

Moderatörün son düzenlenenleri:
Rica ederim.Eki inceleyebilirsiniz çalışıyor içerik olarak arama.
AKTİF_HASTA_LİSTESİ sayfası Tc sütun formatına dikkat edin metin olarak yapılacak.

IIf(.Range("D4").Value = "HEPSÝ", "", .Range("D4").Value)) 'Tc icin HEPSÝ burayı sildim mantıksız olmuş.

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

Bunlarıda ekledim koda hız için.Calculation olanları silebilirsiniz eğer hata olursa yani formüller otomatik çalışmazsa.
Calculation resimdeki ile alakalı Manual yer el ile olanı,automatic olan yerde otomatik yeri seçer.

Ekli dosyayı görüntüle 1725

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(34 satır)

hocam elinize sağlık ama ne yapsam olmadı,sizin attığınız çalışıyor benim exele kopyalayınca çalışmıyor,
Application.Calculation = xlCalculationAutomatic
Application.Calculation = xlCalculationManual

bunları silip denedim gene olmuyor,tc sütununu metin olarak sütunun tamamını biçimlendirdim, 2.sarırda *rakam* şeklinde yazdığımı görüyorum ama filtrede yok
 
hocam elinize sağlık ama ne yapsam olmadı,sizin attığınız çalışıyor benim exele kopyalayınca çalışmıyor,
Application.Calculation = xlCalculationAutomatic
Application.Calculation = xlCalculationManual

bunları silip denedim gene olmuyor,tc sütununu metin olarak sütunun tamamını biçimlendirdim, 2.sarırda *rakam* şeklinde yazdığımı görüyorum ama filtrede yok
 

Ekli dosyalar

Sheets("ARA").Range("D8:D" & Rows.Count).NumberFormat = "dd.mm.yyyy"
Bu koduda eklemelisini kod satırının en altına felan.Clear olduğu için tarihi sayı olarak gösteriyordu.Ordaki D yerine Ara sayfanındaki hangi sütun ise o yazılacak.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst