Mit =DATEDIF(geburtstag;stichtag;"Y") kann man das Alter
berechnen lassen. Ich brauche diese Funktion aber auch
unter Wort und habe versucht, das unter VBA abzubilden,
aber irgendwie klappt das mit 'DateDiff("yyyy",
geburtstag, stichtag)' nicht.
Wie muß das unter VBA aussehen, kann mir jemand helfen?
Danke
Marco
Vielleicht hilft dir das:
Sub AlterBerechnen()
Dim Geburtstag As Date
Dim Stichtag As Date
Dim Alter As Integer
Geburtstag = "09.10.1958"
Stichtag = Date
Alter = DateDiff("yyyy", Geburtstag, Stichtag)
MsgBox "Das Alter ist " & Alter
End Sub
-
Liebe Gruesse
Barbara
Hallo,
'DateDiff' in der hier verwendeten Form reicht nicht aus,
da nur die Differenz der Jahreszahlen berechnet wird. Die
Funktion muß ergänzt werden; wenn das jahresunabhängige
Stichtagsdatum vor dem des Geburtstages liegt muß das
Ergebnis um '1' reduziert werden.
MfG Thora Rexani
Barbara:
>>Sub AlterBerechnen()
>>Dim Geburtstag As Date
>>Dim Stichtag As Date
>>Dim Alter As Integer
>>Geburtstag = "09.10.1958"
>>Stichtag = Date
>>Alter = DateDiff("yyyy", Geburtstag, Stichtag)
>>MsgBox "Das Alter ist " & Alter
Thora:
>'DateDiff' in der hier verwendeten Form reicht nicht aus,
>da nur die Differenz der Jahreszahlen berechnet wird. Die
>Funktion muß ergänzt werden; wenn das jahresunabhängige
>Stichtagsdatum vor dem des Geburtstages liegt muß das
>Ergebnis um '1' reduziert werden.
Das ist grundsaetzlich richtig.
Marco hat aber nach der VBA-Entsprechung fuer die DATEDIF()-Funktion
gesucht und nicht beschrieben, was genau nicht funktioniert.
Das Beispiel liefert imho die Entsprechung fuer die DATEDIF()-Funktion
und eine Abfrage der Zeitpunkte laesst sich noch einbauen.
-
Liebe Gruesse
Barbara
also ich denke, daß Marco das VBA-Äquivalent zur korrkten
Ermittlung des Alter entsprechende der Excelfuntion
suchte. Diese liefert für '=DATEDIF
("31.12.2002";"01.01.2003";"Y")' das Ergebnis '0' wärend
die VBA-Funktion 'DateDiff
("yyyy","31.12.2002","01.01.2003")' als Ergebnis '1'
liefert.
MfG Thora Rexani
>also ich denke, daß Marco das VBA-Äquivalent zur korrkten
>Ermittlung des Alter entsprechende der Excelfuntion
>suchte. Diese liefert für '=DATEDIF
>("31.12.2002";"01.01.2003";"Y")' das Ergebnis '0' wärend
>die VBA-Funktion 'DateDiff
>("yyyy","31.12.2002","01.01.2003")' als Ergebnis '1'
>liefert.
Du hast Recht - es liefert nicht das selbe Ergebnis.
Hier mit Abfrage, ob der Geburtstag im Stichtagsjahr bereits
stattgefunden hat oder nicht.
Sub AlterBerechnen()
Dim Aktuell As Date
Dim Geburtstag As Date
Dim Stichtag As Date
Dim Alter As Integer
Geburtstag = "08.12.91"
Stichtag = Date
'Bestimmt das Geburtsdatum im Jahr von Stichtag
Aktuell = Day(Geburtstag) & "." & Month(Geburtstag) & "." & _
Year(Stichtag)
If Aktuell < Stichtag Then
Alter = DateDiff("yyyy", Geburtstag, Stichtag)
Else
Alter = DateDiff("yyyy", Geburtstag, Stichtag) - 1
End If
MsgBox "Das Alter ist " & Alter
vielen Dank für Eure Hilfe, jetzt klappt es so, wie ich es
brauche.
Marco
Schoen dass es geholfen hat - vielen Dank fuer die Rueckmeldung.
-
Liebe Gruesse
Barbara