İki tarih arasındaki gün sayısı ve uyarı

Katılım
27 Ekim 2017
Mesajlar
97
Excel Vers. ve Dili
2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
06-01-2024
Forumda arattım ama bulamadım...
ekteki dosyada istedigim şey şu:
A sutununda herhangi bir hücreye bir tarih yazdık diyelim
B sütununda aynı satıra karşılık gelen bir hücreye tarih yazdık diyelim
B sutununa tarih yazınca,iki tarih arasındaki fark 20 günü geçmişse pencerede hata vercek ve mümkünse başlama tarihinden sonra 20.güne ait tarihi de aynı hata penceresinde yazcak...
Şayet tarih 20 günden falza değilse sorun yok zaten.Yardımcı olabilir misiniz.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,493
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz.
Gerekirse kendinize uyarlayabilirsiniz. Doğru tarihi yazmak gibi örneğin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [B:B]) Is Nothing Or Target.Row < 2 Or Target.Value = "" Then Exit Sub
    
    If Target.Value - Target.Offset(0, -1) > 20 Then
        MsgBox "Tarih Fazla Oldu, Olması Gereken Tarih : " & Target.Offset(0, -1) + 20
    End If
    
End Sub
 
Katılım
27 Ekim 2017
Mesajlar
97
Excel Vers. ve Dili
2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
06-01-2024
Necdet hocam güzel ama şöyle bir durum var.
Tarihler diyelimki doğru sorun yok diyelim....O sırada başlangıç tarihini örnegin değiştirip geriye yani daha erken bir tarihe alınca uyarı vermiyor.Bunu da ekleyebilir misiniz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,493
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Yukarıdaki kodlar aynen dursun, yeni kodlar aşağıda

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:B]) Is Nothing Or Target.Row < 2 Or Target.Value = "" Then Exit Sub
    
    If Target.Column = 1 And Target.Offset(0, 1) <> "" Then
        If Target.Offset(0, 1) - Target.Value > 20 Then
            MsgBox "Bitiş Tarihi : " & Target.Value + 20 & " Olmalı...."
        End If
    ElseIf Target.Column = 2 Then
        If Target.Value - Target.Offset(0, -1) > 20 Then
        MsgBox "Tarih Fazla Oldu, Olması Gereken Tarih : " & Target.Offset(0, -1) + 20
        End If
    End If
    
End Sub
 
Son düzenleme:
Katılım
27 Ekim 2017
Mesajlar
97
Excel Vers. ve Dili
2016 TÜRKÇE
Altın Üyelik Bitiş Tarihi
06-01-2024
teşekkürler 2.kod istedigim gibi çalışıyor
 
Üst