Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Datumsdifferenz in der Form "12 Jahre, 3 Monate, 4 Tage"

Gruppe

DatumUndZeit

Problem

Wie kann eine Datumsdifferenz mit Angabe von Jahren, Monaten und Tagen aufgerufen werden?

Lösung
Folgende Funktion: =DATEDIF(A2;B2;"y")&" Jahr(e), "&DATEDIF(A2;B2;"ym")&" Monat(e), "& DATEDIF(A2;B2;"md")& " Tag(e)"

StandardModule: basMain

Function DatDiff(datStart As Date, datEnd As Date) As String
   Dim intYear As Integer, intMonth As Integer
   Dim intDay As Integer, intYD As Integer
   Dim intMD As Integer, intTD As Integer
   intYear = Year(datStart)
   intMonth = Month(datStart)
   intYD = Year(datEnd) - intYear
   intMD = Month(datEnd) - intMonth
   intTD = Day(datEnd) - Day(datStart)
   If intTD < 0 Then
      intMD = intMD - 1
      intTD = intTD + Day(DateSerial(intYear, intMonth + 1, 0))
   End If
   If intMD < 0 Then
      intYD = intYD - 1
      intMD = intMD + 12
   End If
   DatDiff = intYD & " Jahr(e), " & intMD _
        & " Monat(e), " & intTD & " Tag(e)"
End Function