• DİKKAT

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

Tarih çıkarma ve koşullu biçimlendirme

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Herkese günaydın arkadaşlar.

Ekte gönderdiğim excel sayfasında tarih çıkarma formülü ve koşullu biçimlendirme uygulama çalıştım, ancak bu kadar yapabildim.

Sayfada gerekli açıklamayı yaptım.

Yardım edecek arkadaşlara şimdiden çok teşekkür ederim.
 

Ekli dosyalar

Merhaba.Ön bilgi açısından aşağıdaki kodu deneyebilirsiniz.
Kod:
Sub yaz()
Set s1 = Sheets("Sayfa1")
Application.DisplayAlerts = False
son = s1.Range("K2").End(xlDown).Row
For i = 2 To son
If Cells(i, "K") <> "" Then
If s1.Cells(i, "K") < Date Then s1.Cells(i, "M") = Date - s1.Cells(i, "K") & "  Gün Geçti"
If s1.Cells(i, "K") > Date Then s1.Cells(i, "M") = s1.Cells(i, "K") - Date & "  Gün Kaldı"
If s1.Cells(i, "K") = Date Then s1.Cells(i, "M") = s1.Cells(i, "K") - Date & "  Evrakı Bugün Yap"
End If
Next i
End Sub
 
Sayın vardar07 ilginiz ve emeğiniz için çok teşekkür ediyorum.

Yazdığınız kodu uyguladığımda aşağıdaki gibi çıkıyor, 1 ayı geçtiğinde örnek olarak 1 ay 8 gün geçti olmasını istiyorum, ancak 38 gün geçti oluyor. Kırmızı ile olanlarda hata olarak görüyorum.

Sayfayı her gün açtığımda formül otomatik olarak çalıştığı için zahmet olmazsa formülle yapabilir misiniz? Teşekkürler.

2 Gün Kaldı
32 Gün Kaldı
396 Gün Kaldı
409 Gün Kaldı
0 Evrakı Bugün Yap

1 Gün Kaldı
0 Evrakı Bugün Yap
8 Gün Geçti
38 Gün Geçti
403 Gün Geçti
 
Modül içine:
Kod:
Sub yaz()
Dim s1 As Worksheet
Set s1 = Sheets("Sayfa1")
Application.DisplayAlerts = False
son = s1.Range("K2").End(xlDown).Row
For i = 2 To son
If Cells(i, "K") <> "" Then
If s1.Cells(i, "K") < Date Then s1.Cells(i, "M") = Year(Date) - Year(s1.Cells(i, "K")) & " Yıl " & _
 Month(Date) - Month(s1.Cells(i, "K")) & " Ay " & Day(Date) - Day(s1.Cells(i, "K")) & " Gün Geçti"
If s1.Cells(i, "K") > Date Then s1.Cells(i, "M") = Year(s1.Cells(i, "K")) - Year(Date) & " Yıl " & _
Month(s1.Cells(i, "K")) - Month(Date) & " Ay " & Day(s1.Cells(i, "K")) - Day(Date) & " Gün Kaldı"
If s1.Cells(i, "K") = Date Then s1.Cells(i, "M") = " Evrakı Bugün Yap"
End If
Next i
End Sub

ThisWorkbook Kod kısmına:
Kod:
Private Sub Workbook_Open()
Call yaz
End Sub

Sayfa1 in kod kısmına:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("K2:K65536")) Is Nothing Then Exit Sub 'KOLONDA DEĞİŞİM
Call yaz
End Sub

Kodları gerekli yerlere ekleyin. sayfada "K" sütununda tarih girince ve excel her açılışta otomatik çalışır.
 
Sayın vardar07 sizi yoruyorum kusura kalmayın, yazmış olduğunuz bütün kodları dediğiniz gibi yaptım.

20.04.2015 0 Yıl 0 Ay 2 Gün Kaldı
10.04.2015 0 Yıl 0 Ay 8 Gün Geçti
11.05.2015 0 Yıl 1 Ay -7 Gün Kaldı bu şekilde sonuçlar aldım.

Benim istediğim aşağıdaki gibi istemiştim, sanırım olmayacak galiba,
Ayrıca koşullu biçimlendirmeyide satırlara uygulamak istiyorum, sadece hücrede kalıyor.

2 gün kaldı
8 gün geçti
1 ay 7 gün kaldı
 
Sizin istediğiniz olmaz değil olur ancak kodları inceleyip şartları çoğaltmak lazım Özür dileyerek o kadar uğraşacak zamanım yok. Belki bir arkadaş yardımcı olabilir. Kolay gelsin.
 
Yine de ilginize ve emeğine çok teşekkür ediyorum, hayırlı çalışmalar.
 
Aşağıdaki kodları eskisi ile değiştirin. Olacağı bu kadar.
Kod:
Sub yaz()
Dim s1 As Worksheet
Set s1 = Sheets("Sayfa1")
Application.DisplayAlerts = False
son = s1.Range("K2").End(xlDown).Row
For i = 2 To son
If Cells(i, "K") <> "" Then
If Year(s1.Cells(i, "K")) < Year(Date) Then
s1.Cells(i, "M") = Year(Date) - Year(s1.Cells(i, "K")) & " Yıl " & _
Month(Date) - Month(s1.Cells(i, "K")) & " Ay " & Day(Date) - Day(s1.Cells(i, "K")) & " Gün Geçti"
ElseIf Month(s1.Cells(i, "K")) < Month(Date) Then
s1.Cells(i, "M") = Month(Date) - Month(s1.Cells(i, "K")) & " Ay " & Day(Date) - Day(s1.Cells(i, "K")) & " Gün Geçti"
ElseIf Day(s1.Cells(i, "K")) < Day(Date) Then
s1.Cells(i, "M") = Day(Date) - Day(s1.Cells(i, "K")) & " Gün Geçti"
End If
If Year(s1.Cells(i, "K")) > Year(Date) Then
s1.Cells(i, "M") = Year(s1.Cells(i, "K")) - Year(Date) & " Yıl " & _
Month(s1.Cells(i, "K")) - Month(Date) & " Ay " & Day(s1.Cells(i, "K")) - Day(Date) & " Gün Kaldı"
ElseIf Month(s1.Cells(i, "K")) > Month(Date) And Day(s1.Cells(i, "K")) <= Day(Date) Then
s1.Cells(i, "M") = Month(s1.Cells(i, "K")) - Month(Date) & " Ay " & Day(Date) - Day(s1.Cells(i, "K")) & " Gün Kaldı"
ElseIf Month(s1.Cells(i, "K")) > Month(Date) Then
s1.Cells(i, "M") = Month(s1.Cells(i, "K")) - Month(Date) & " Ay " & Day(s1.Cells(i, "K")) - Day(Date) & " Gün Kaldı"
ElseIf Day(s1.Cells(i, "K")) > Day(Date) Then
s1.Cells(i, "M") = Day(s1.Cells(i, "K")) - Day(Date) & " Gün Kaldı"
End If
If s1.Cells(i, "K") = Date Then s1.Cells(i, "M") = " Evrakı Bugün Yap"
End If
Next i
End Sub
 
Son düzenleme:
Sayın vardar07 bu kod tam istediğim gibi,
ancak 11.05.2015 böyle bir tarih yazdığımda 1 Ay -7 Gün Kaldı sonuç neden -7 çıkıyor.
Ayrıca koşullu biçimlendirmeye yardımcı olur musunuz?
 
Arkadaşlar aşağıdaki formül ile sorun çözüldü.

Kod:
=EĞER(BUGÜN()<K2;EĞER(VE(ETARİHLİ(BUGÜN();K2;"y")=0;ETARİHLİ(BUGÜN();K2;"ym")=0;ETARİHLİ(BUGÜN();K2;"md")=0);"Evrakı Bugün Yap";EĞER(ETARİHLİ(BUGÜN();K2;"y")=0;"";ETARİHLİ(BUGÜN();K2;"y")&" Yıl ")&EĞER(ETARİHLİ(BUGÜN();K2;"ym")=0;"";ETARİHLİ(BUGÜN();K2;"ym")&" Ay ")&EĞER(ETARİHLİ(BUGÜN();K2;"md")=0;"Kaldı";ETARİHLİ(BUGÜN();K2;"md")&" Gün kaldı"));EĞER(VE(ETARİHLİ(K2;BUGÜN();"y")=0;ETARİHLİ(K2;BUGÜN();"ym")=0;ETARİHLİ(K2;BUGÜN();"md")=0);"Evrakı Bugün Yap";EĞER(ETARİHLİ(K2;BUGÜN();"y")=0;"";ETARİHLİ(K2;BUGÜN();"y")&" Yıl ")&EĞER(ETARİHLİ(K2;BUGÜN();"ym")=0;"";ETARİHLİ(K2;BUGÜN();"ym")&" Ay ")&EĞER(ETARİHLİ(K2;BUGÜN();"md")=0;"Geçti";ETARİHLİ(K2;BUGÜN();"md")&" Gün Geçti")))
 
8 Nolu mesaj güncellendi.
 
Sayın vardar07 ilginize ve emeğinize çok teşekkür ederim, yazmış olduğunuz güncellediğiniz kodu uyguladım çok işime yarayacak hayırlı çalışmalar.
 
Geri
Üst