Soru tarih

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,539
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Kod:
Function Trhh(data) As String
Dim yil As Integer
Dim ay As Integer
Dim gun As Integer
Dim tarih As Date
    Temp = Split(Trim(data), " - ")
    ilktarih = IIf(1, Temp(0), StrReverse(Temp(0)))
    sontarih = IIf(1, Temp(1), StrReverse(Temp(1)))

If ilktarih > sontarih Then
 MsgBox "İlk seçilen tarih küçük olmalı, sonuç buna göre hesaplanıyor."
  tarih = ilktarih
  ilktarih = sontarih
  sontarih = tarih
End If

yil = year(sontarih) - year(ilktarih)

If DateSerial(year(sontarih), Month(ilktarih), day(ilktarih)) > sontarih Then
  yil = yil - 1
End If

  If Month(sontarih) > Month(ilktarih) Then
    If day(sontarih) >= day(ilktarih) Then
      ay = Month(sontarih) - Month(ilktarih)
    Else
      ay = Month(sontarih) - Month(ilktarih) - 1
    End If
    Else
    If day(sontarih) >= day(ilktarih) Then
    ay = Month(sontarih) - Month(ilktarih) + 12
    If ay = 12 Then ay = 0
      Else
      ay = Month(sontarih) - Month(ilktarih) + 11
    End If
  End If

  If day(sontarih) >= day(ilktarih) Then
    gun = day(sontarih) - day(ilktarih)
    Else
    gun = day(DateSerial(year(ilktarih), Month(ilktarih) + 1, 1) - 1) - day(ilktarih) + day(sontarih)
  End If
 
  Trhh = yil & " yıl " & ay & " ay " & gun & " gün"

End Function
ilk tarih ile son tarih 31 olunca makro - formatında hesaplıyor.

İlk Ay = 31.07.2012
Son Ay = 31.01.2013
sonuç = -1 yıl 6 ay 0 gün
düzeltilmesi için yardımcı olmanız mümkün mü?
 
Üst