iki tarih arasındaki tüm günleri yazma makrosu

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
GÜNCELLE olarak tanımladığınız butonu SİLME işlemi için kullanabilirsiniz.

C++:
Private Sub CommandButton2_Click()
    Dim S1 As Worksheet, X As Long, Alan As Range
   
    Set S1 = Sheets("Sabitler")
   
    For X = 2 To S1.Cells(S1.Rows.Count, 1).End(3).Row
        If S1.Cells(X, 1) >= CDate(TextBox4) And S1.Cells(X, 1) <= CDate(TextBox5) And S1.Cells(X, 2) = ComboBox2 Then
            If Alan Is Nothing Then
                Set Alan = S1.Cells(X, 1)
            Else
                Set Alan = Union(Alan, S1.Cells(X, 1))
            End If
        End If
    Next
   
    If Not Alan Is Nothing Then
        Alan.EntireRow.Delete
        MsgBox "Hatalı tarih aralığı silinmiştir.", vbInformation
    Else
        MsgBox "Hatalı tarih bulunumadı!", vbExclamation
    End If
   
    Set Alan = Nothing
    Set S1 = Nothing
End Sub
 
Katılım
6 Ekim 2006
Mesajlar
40
Excel Vers. ve Dili
office 2013- office 2016
Altın Üyelik Bitiş Tarihi
30/05/2022
Korhan Bey öncelikle çok teşekkür ederim, uğraştırıyorum sizi kusura bakmayın. Yazdığınız kodu uyguladım fakat benim istediğim bu değildi. Şöyle anlatmaya çalışayım; izin başlangıç ve bitiş tarihlerini kaydettik, ve iki tarih arasını alt alta seri şekilde yazdırdık. Buraya kadar tamam. Kullanıcı daha sonra bu izin tarihlerini yanlış girdiğini fark etti (yani diyelim ki ayın 3'ü ile 9'u arası değil de, 5'i ile 10'u arası iznini güncellemek istedi) bu durum da öncelikle ilk hatalı girdiği 3 ile 9 tarihi arasını bulup silmemiz ve yeni izin tarihini 5 ile 10 arasını kaydetmemiz gerekiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İşin içinde zaten silme işlemi var. Benim önerdiğim yöntem hatalı girilen tarih aralığı komple siliyor. Sonrasında doğru tarihleri girerek yeniden kayıt işlemi yapılacak. Eğer yeniden kayıt işlemini otomatik yapsın derseniz CommandButton1 kodlarını çağırarak işlemi yaptırabilirsiniz.
 
Katılım
6 Ekim 2006
Mesajlar
40
Excel Vers. ve Dili
office 2013- office 2016
Altın Üyelik Bitiş Tarihi
30/05/2022
Korhan Bey sizin kodlarınızla tekrar denedim, ama herhangi bir işlem yapmıyor, sadece tarih hatalı değildir diye mesaj veriyor. Herhangi bir silme işlemi yapmadı. Dediğiniz gibi iki tarih arasını sildikten sonra kayıt butonunu çağırarak sorunu çözebilirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Userformunuzda GÜNCELLE butonu tarafındaki nesnelere silmek istediğiniz tarih ve izin tipini yazarak deneyiniz.
 
Katılım
6 Ekim 2006
Mesajlar
40
Excel Vers. ve Dili
office 2013- office 2016
Altın Üyelik Bitiş Tarihi
30/05/2022
Denedim ama herhangi bir işlem yapmıyor, sadece "hatalı tarih bulunamadı" mesajı veriyor. Veri girerek te denedim, boşken de denedim hiç bir işlem yapmıyor..
 
Katılım
6 Ekim 2006
Mesajlar
40
Excel Vers. ve Dili
office 2013- office 2016
Altın Üyelik Bitiş Tarihi
30/05/2022
Korhan Bey tamamdır, teşekkür ederim çok uğraştırdım sizi, emekleriniz ve ilginiz için çok sağ olun. Kolaylıklar diliyorum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Verdiğim kod ile silme işlemi gerçekleşti mi?
 
Katılım
6 Ekim 2006
Mesajlar
40
Excel Vers. ve Dili
office 2013- office 2016
Altın Üyelik Bitiş Tarihi
30/05/2022
Evet Korhan Bey, kendi dosyama uyarlarken bir yerde hata yapmışım, onu düzeltince çalıştı. Önce sildiriyorum sonra yeni izin kaydını yaptırıyorum. tekrardan çok teşekkür ederim, ellerinize sağlık.
 
Üst