- Katılım
- 24 Şubat 2007
- Mesajlar
- 241
- Excel Vers. ve Dili
- OFİS XP TÜRKÇE
- Altın Üyelik Bitiş Tarihi
- 26-11-2020
Tarih Farkı Yıl, sorun yaşıyorum
selam arkadaşlar;
iki tarih arasındaki farkı yıl olarak almak istiyorum. örneğin kişinin işten çıkış tarihi varsa işten çıkış tarihinden, işe başlama tarihini çıkartıp yıl olarak görmek istiyorum. eğer işten çıkış tarihi yoksa günün tarihinden çıkartmasını sağlamak istiyorum ama olmadı biyerlerde eksiklik var bulamadım.
yardımlarınızı bekliyorum teşekkürler.
'--------------------------------------------------------------------------
Sub kıdem()
Dim tarih As Date
Set s2 = Sheets("PERSONELKARTLARI")
son = s2.Cells(65536, 5).End(3).Row
For i = 13 To son
If s2.Cells(i, 6) <> "" Then
v1 = s2.Cells(i, 5).Value 'Başlangıç Tarihi
v2 = s2.Cells(i, 6).Value 'Bitiş Tarihi
v3 = tfyıl(v1, v2)
s2.Cells(i, 7).Value = v3
Else
If s2.Cells(i, 6) = "" Then
v1 = s2.Cells(i, 5).Value 'Başlangıç Tarihi
v2 = tarih 'Bitiş Tarihi
v3 = tfyıl(v1, tarih)
s2.Cells(i, 7).Value = v3
End If
Next
End Sub
'------------------------------------------------------------------------
Function tfyıl(Tarih1 As Date, Tarih2 As Date, Optional Tur As Integer) As String
Dim y, A, G As Integer
Dim Temp1, Temp2 As Date
Application.Volatile
Temp1 = DateSerial(Year(Tarih2), Month(Tarih1), Day(Tarih1))
Temp2 = DateSerial(Year(Tarih2), 0, 0) - DateSerial(Year(Tarih1), 0, 0) 'Tam Yıldaki Gün sayısı
y = Year(Tarih2) - Year(Tarih1) + (Temp1 > Tarih2)
A = Month(Tarih2) - Month(Tarih1) - (12 * (Temp1 > Tarih2))
G = Day(Tarih2) - Day(Tarih1)
If G < 0 Then
A = A - 1
G = Day(DateSerial(Year(Tarih2), Month(Tarih2), 0)) + G
End If
If Tur = 0 Then Tur = 7
tfyıl = Choose(Tur, Tarih2 - Tarih1, _
A + (y * 12), _
y, _
A, _
(Tarih2 - Tarih1) - Temp2, _
G, _
y) 'sadece yılı gösterir
End Function
selam arkadaşlar;
iki tarih arasındaki farkı yıl olarak almak istiyorum. örneğin kişinin işten çıkış tarihi varsa işten çıkış tarihinden, işe başlama tarihini çıkartıp yıl olarak görmek istiyorum. eğer işten çıkış tarihi yoksa günün tarihinden çıkartmasını sağlamak istiyorum ama olmadı biyerlerde eksiklik var bulamadım.
yardımlarınızı bekliyorum teşekkürler.
'--------------------------------------------------------------------------
Sub kıdem()
Dim tarih As Date
Set s2 = Sheets("PERSONELKARTLARI")
son = s2.Cells(65536, 5).End(3).Row
For i = 13 To son
If s2.Cells(i, 6) <> "" Then
v1 = s2.Cells(i, 5).Value 'Başlangıç Tarihi
v2 = s2.Cells(i, 6).Value 'Bitiş Tarihi
v3 = tfyıl(v1, v2)
s2.Cells(i, 7).Value = v3
Else
If s2.Cells(i, 6) = "" Then
v1 = s2.Cells(i, 5).Value 'Başlangıç Tarihi
v2 = tarih 'Bitiş Tarihi
v3 = tfyıl(v1, tarih)
s2.Cells(i, 7).Value = v3
End If
Next
End Sub
'------------------------------------------------------------------------
Function tfyıl(Tarih1 As Date, Tarih2 As Date, Optional Tur As Integer) As String
Dim y, A, G As Integer
Dim Temp1, Temp2 As Date
Application.Volatile
Temp1 = DateSerial(Year(Tarih2), Month(Tarih1), Day(Tarih1))
Temp2 = DateSerial(Year(Tarih2), 0, 0) - DateSerial(Year(Tarih1), 0, 0) 'Tam Yıldaki Gün sayısı
y = Year(Tarih2) - Year(Tarih1) + (Temp1 > Tarih2)
A = Month(Tarih2) - Month(Tarih1) - (12 * (Temp1 > Tarih2))
G = Day(Tarih2) - Day(Tarih1)
If G < 0 Then
A = A - 1
G = Day(DateSerial(Year(Tarih2), Month(Tarih2), 0)) + G
End If
If Tur = 0 Then Tur = 7
tfyıl = Choose(Tur, Tarih2 - Tarih1, _
A + (y * 12), _
y, _
A, _
(Tarih2 - Tarih1) - Temp2, _
G, _
y) 'sadece yılı gösterir
End Function
Ekli dosyalar
-
24.7 KB Görüntüleme: 5
Son düzenleme:
