Seçili yıla ait kayıtları arşive aktarma

Katılım
27 Eylül 2023
Mesajlar
47
Excel Vers. ve Dili
Office 2016 Türkçe
Merhaba arkadaşlar.
Ekli örnek dosyada detaylı olarak anlattığım gibi kurum resmi araç görev kayıtlarını tuttuğum bir çalışma kitabım var. Bu çalışma kitabında verileri DEFTER isimli sayfaya işliyorum. Yıl bitince önceki yıllara ait kayıtları arşive aktarmak istiyorum. Burada yapmak istediğim birçok yıla ait kayıtlar arasından seçtiğim yıla ait olan kayıtları arşivlemek istiyorum. Örnek çalışma kitabı ektedir. Yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.

Örnek dosya
 

MGokboruAtan

Altın Üye
Katılım
20 Kasım 2023
Mesajlar
87
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2310 Derleme 16.0.16924.20054) 64 bit
Altın Üyelik Bitiş Tarihi
20-11-2024
kontrol eder misiniz eğer doya indiremiyorsanız bu kodu ekleyin
Kod:
Sub secili_yili_arsive_aktar()

    Dim ws As Worksheet
    Dim arsiv As Worksheet
    Dim yil As Integer
    Dim i As Integer
    
    ' Hedef yılı belirle
    yil = Range("F2").Value
    
    ' Arşiv sayfasını belirle
    Set arsiv = Sheets("ARŞİV")
    
    ' Hedef yılı kontrol et ve arşive taşı
    For Each ws In ThisWorkbook.Sheets
        If ws.Name <> "ARŞİV" Then
            For i = 100 To 5 Step -1
                If ws.Range("K" & i).Value = yil Then
                    ws.Rows(i).Copy arsiv.Rows(arsiv.Cells(arsiv.Rows.Count, "B").End(xlUp).Row + 1)
                    ws.Rows(i).Delete
                End If
            Next i
        End If
    Next ws
End Sub
 

Ekli dosyalar

Katılım
27 Eylül 2023
Mesajlar
47
Excel Vers. ve Dili
Office 2016 Türkçe
Çok teşekkür ederim arkadaşlar. İyi ki varsınız.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub secili_yili_arsive_aktar()
    Dim son&, yil
    With Sheets("DEFTER")
        yil = .Range("F2").Value
        If yil <> "" Then
            son = .Cells(Rows.Count, 2).End(3).Row
            With .Range("B4:M" & son)
                .AutoFilter Field:=10, Criteria1:=yil
                If Evaluate("SUBTOTAL(3,B5:B" & son & ")") > 1 Then
                    .Rows(2 & ":" & son - 3).Copy Sheets("ARŞİV").Cells(Rows.Count, 2).End(3).Offset(1)
                    .Rows(2 & ":" & son - 3).Delete shift:=xlUp
                End If
                .AutoFilter
            End With
        End If
    End With
End Sub
 
Üst