Her ayın 20 inde satırları silme

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
hocalarım merhaba; formda ne kadar satır silme konusu var ise hemen hemen baktım ancak konu başlığında olan bir çalışma bulamadım. İstediğim ÖDEME sayfasında ki verilerin R sütununda bulunan Sonlanma tarihinden sonraki ayın 20 inde (sonlanma tarihi ekim ayı içerisinde ise Kasım ayının 20 i gibi) A4 satırından itibaren (A4 satırı dahil) çalışma kitabı açıldığında yada açılmadan silinmesi. ekteki çalışmanın ÖDEME sayfasına da kısa bir açıklama yazdım
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Silerken Ekim ayıyla ilgili bir sorgulama olacak mı?
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Korhan hocam 3 gündür indirmediğim hatırlatıcı kalmadı çok güzel şeyler de var bir çoğunu uyarladım kullanıyorum ama bu dediğim şekil bir örneğe denk gelemedim. Hocam her ayın 20 inde sistem çalışmalı bu nedenle ekim ayı örneğini verdim bulunduğu ay harici ne varsa ya işaretlesin renklendirme gibi yada satırı silsin ki silmesi daha güzel veya bir hatırlatıcı mesaj versin kullanıcı kendi de silebilir. Kasım ayına gireceğiz Kasım 20 geldiğinde 01.11.2023-30.11.2023 tarihleri arasında olmayan ne varsa
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Listenizde 30.11.2023 sonrası tarih varsa bunlarda mı silinecek?
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
kolay kolay içinde bulunulan ay sonrası tarih olmaz hocam olursa büyük ihtimal yanlış veri girilmiş olur. Kasım ayı içerisinde iken Aralık ayı tarihinin olmaması gerekiyor var ise de yanlış veri girilmiş demektir bunun için ayrı bir uyarı gerekir ki o uyarı da GÜNCEL sayfasında olmalı onu ben çözerim sizi o konuda yormayım içinde bulunulan ay haricinde ne varsa silinsin hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Boş bir modüle uygulayınız.

Dosya açılışında ilgili dönem dışında ne varsa (küçük ya da büyük tarih) uyarı vererek onayını doğrultusunda silecektir. Kendinize göre gerekirse düzenlersiniz.

C++:
Option Explicit

Sub Auto_Open()
    Dim S1 As Worksheet, First_Date As Long, Last_Date As Long, Onay As Byte
   
    On Error GoTo 10
   
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False

    Set S1 = Sheets("ÖDEME")
   
    If Day(Date) = 31 Then
        First_Date = DateSerial(Year(Date), Month(Date), 1)
        Last_Date = DateSerial(Year(Date), Month(Date) + 1, 0)
        S1.Range("A3:T" & S1.Rows.Count).AutoFilter 18, "<" & First_Date, xlOr, ">" & Last_Date
        If S1.Cells(S1.Rows.Count, 1).End(3).Row > 3 Then
            Onay = MsgBox("Listede ilgili dönem dışında kayıtlar var. Onayınız doğrultusunda silinecektir!", vbCritical + vbYesNo + vbDefaultButton2)
            If Onay = vbNo Then
                MsgBox "Silme işlemi iptal edilmiştir.", vbInformation
            Else
                S1.Range("A4:T" & S1.Cells(S1.Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlUp
                On Error Resume Next
                S1.ShowAllData
                On Error GoTo 0
                ThisWorkbook.Save
                MsgBox "Dönem dışı kayıtlar silinmiştir!", vbInformation
            End If
        End If
    End If
   
    On Error Resume Next
    S1.ShowAllData
    On Error GoTo 0
   
    Set S1 = Nothing

10  Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
S1.Range("A3:T" & S1.Rows.Count).AutoFilter 18, "<" & First_Date, xlOr, ">" & Last_Date buradaki A3 A4 olmalı mı?

hocam Kasım ayının 20 si gelince açıldığında mı silecek eğer öyleyse ise şu an kontrolünü yapamam sanırım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
A3 olmalı..

Alttaki satırda gün koşulu var.. Eğer bugün ayın 20'si ise kod çalışacaktır. Bu satırla oynayarak (20 değerini değiştirip) kodu test edebilirsiniz. Dosyanızın kopyasını aldıktan sonra tarihleri değiştirip kodu test edebilirsiniz.

If Day(Date) = 20 Then
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
247390
If Day(Date) = 20 Then Hocam bu satırı silerek ve 31 sayısı vererek (Kasım ayında olmadığı için) denedim liste açıldığında uyarı vermeden resimdeki gibi satırları gizliyor sanırım bu da çalıştığını göstermekte 01.10.2023 31.10.2023 arası olanları silme demişsiniz orayı bozmamak için değiştirmedim
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
çok teşekkür ederim makro kaydet vasıtasıyla bir çok şeyi öğrenmeye çalışıyorum ancak daha çok yolum var; İyi ki excel web var iyi ki varsınız
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Korhan hocam 1 kasım tarihini verdim kodlar çalıştı ancak yukarıda ki resimde olduğu gibi 02.11.2023 tarihinden sonraki satırları filtreliyor sonra manuel olarak tümünü göster dediğimde görünüyor bunun haricinde problem yok kasım ayını içeren tarihli satırlar filtrelenmiş olarak kalıyor diğer tüm satırlar siliniyor uyarı penceresi de açılıyor çok teşekkür ederim
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
silme işlemi onay verip satırlar silindikten sonra kaydetmeden çıkış yapıp yeniden açtığımda silinmemiş halde geliyor kaydedip çıkış yaparsam silinmiş halde ve filtreli geliyor filtreden çıkarıp kaydedip kapatıp açtığımda yine filtreli geliyor çok büyük bir problem değil ancak filtrelemenin önüne geçilebilinirse daha iyi olur ekte görseli var silme işlemine onay vermezsem kasım ayını içeren satırlar filtreleniyor
247398
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Koda ufak eklemeler yaptım. Son halini tekrar denersiniz.
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Hocam gün bitince sistem çalışıyor bu gece denerim çok teşekkür ederim
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Hocam mükemmelsiniz filtreleme sorunu yok dönem dışı kayıtları silip kaydetmeden çıktığım halde silinenler geri gelmiyor. Çok teşekkür ediyorum
 
Üst