Tarih problemi

Katılım
17 Mayıs 2005
Mesajlar
57
Excel Vers. ve Dili
Office XP Prof
Arkadaşlar; excel de iki tarih arasındaki farkı bulurken mesela A2 hücresinde 02.11.1984 A1 hücresinde 02.04.1983 sonuç A3 hücresinde 1 yıl 7 ay 5 gün olarak çıkıyor oysa el ile çıkardığımız zaman 1 yıl 7 ay çıkıyor. bize de 1 yıl 7 ay sonucu lazım nasıl hallededirim. yardımlarınız için şimdiden teşekkür ederim.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Selamlar, örnek bir dosya gönderiyorum. Kolay gelsin.
 
Katılım
20 Şubat 2006
Mesajlar
188
Excel Vers. ve Dili
Office 2003 Tr
Sayın musti60,
Aşağıdaki kodları VBA da yeni Modül açarak giriniz.
Ekle menüsünden İşlevi açarak Kullanıcı tanımlı dan Tarihfarkını kullanabilirsiniz.
Bu kodlarıda bu forumdan almıştım.



Kod:

Function Tarihfarkı(KüçükTarih As Date, BüyükTarih As Date) As String
Dim years, months, days, m

years = Year(BüyükTarih) - Year(KüçükTarih)
If Month(KüçükTarih) > Month(BüyükTarih) Then
years = years - 1
End If

If Month(BüyükTarih) < Month(KüçükTarih) Then
months = 12 - Month(KüçükTarih) + Month(BüyükTarih)
Else
months = Month(BüyükTarih) - Month(KüçükTarih)
End If

If Day(BüyükTarih) < Day(KüçükTarih) Then
months = months - 1
If Month(BüyükTarih) = Month(KüçükTarih) Then
years = years - 1
months = 11
End If
End If

days = Day(BüyükTarih) - Day(KüçükTarih)
If days < 0 Then
m = CInt(Month(BüyükTarih)) - 1
If m = 0 Then m = 12
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
days = 31 + days
Case 4, 6, 9, 11
days = 30 + days
Case 2
If (Year(BüyükTarih) Mod 4 = 0 And Year(BüyükTarih) _
Mod 100 <> 0) Or Year(BüyükTarih) Mod 400 = 0 Then
days = 29 + days
Else
days = 28 + days
End If
End Select
End If
Tarihfarkı = CStr(years) + " Yıl " + CStr(months) _
+ " Ay " + CStr(days) + " Gün "
End Function
 
Üst