• DİKKAT

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

iki tarih arası filtreleme

mcetinkaya65

Altın Üye
Katılım
1 Mart 2011
Mesajlar
490
Excel Vers. ve Dili
2021 türkçe
Makro ile izin izlenimi sayfasındaki iznleri h2 hücresine göre filtreleyip izindekiler sayfasına atıyor.Fakat şu an istediğim tabiki excel mantığına uyuyorsa,H2 hücresindeki tarih ile H3 hücresindeki tarihler arasındaki izinlileri listelemesi. Örnek : 01/01/2012 ile 07/01/2012 tarihi arasına izinli olanların listesi.
Saygılarımla..
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Necdet beyin önerdiği kodu aşağıdaki gibi değiştirip deneyiniz.

Kod:
Option Explicit
 
Sub Izindeki_Personel()
    
    Dim sListe  As Worksheet, _
        sVeri   As Worksheet
        
    Dim i       As Long, _
        j       As Long
    
    Dim Adet    As Integer, _
        k       As Integer
    Dim Tarih_1 As Date, Tarih_2 As Date
    
    
    Set sListe = Sheets("İzindekiler")
    Set sVeri = Sheets("izin izlenimi")
    
    Tarih_1 = sListe.Range("H2")
    Tarih_2 = sListe.Range("H3")
    
    Application.ScreenUpdating = False
    
    i = sListe.Cells(Rows.Count, "A").End(3).Row
    If i < 3 Then i = 3
    
    sListe.Range("A3:F" & i).ClearContents
    j = 2
    
    For i = 2 To sVeri.Cells(Rows.Count, "A").End(3).Row
    
        If Tarih_1 <= sVeri.Cells(i, "O") And Tarih_2 >= sVeri.Cells(i, "C") Then
            j = j + 1
            Adet = Adet + 1
            sListe.Cells(j, "A") = sVeri.Cells(i, "A")
            sListe.Cells(j, "B") = sVeri.Cells(i, "C")
            sListe.Cells(j, "C") = sVeri.Cells(i, "O")
            
            For k = 5 To 13
                If k < 6 Or k > 9 Then
                    If Not sVeri.Cells(i, k) = "" Then
                        sListe.Cells(j, "D") = sVeri.Cells(1, k)
                        sListe.Cells(j, "E") = sVeri.Cells(i, k)
                        Exit For
                    End If
                End If
            Next k
            
            sListe.Cells(j, "F") = sVeri.Cells(i, "F")
        End If
          
    Next i
    
    Application.ScreenUpdating = True
    If Adet = 0 Then
        MsgBox "Hiç Kimse " & Tarih_1 & "-" & Tarih_2 & " tarihleri arasında izinli değil!", vbCritical, "N. YEŞERTENER"
    Else
        MsgBox "İzinde Olan " & Adet & " Kişi Listelendi....", vbInformation, "N. YEŞERTENER"
    End If
    
End Sub
 
İlginize çok teşekkür ederim , iyi ki varsınız
ALLAH (cc) razı olsun emeğinize yüreğinize sağlık
 
Geri
Üst