Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Alter mit VBA berechnen

971 views
Skip to first unread message

Marco Schäfer

unread,
Jun 17, 2003, 9:56:34 AM6/17/03
to
Hi,

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

Barbara Karli

unread,
Jun 17, 2003, 10:19:05 AM6/17/03
to
Hallo 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

Thora Rexani

unread,
Jun 17, 2003, 12:42:30 PM6/17/03
to

>-----Originalnachricht-----


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 Karli

unread,
Jun 17, 2003, 5:32:54 PM6/17/03
to
Hallo Thora

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

Thora Rexani

unread,
Jun 17, 2003, 6:13:09 PM6/17/03
to

>-----Originalnachricht-----

>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.

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

Barbara Karli

unread,
Jun 18, 2003, 1:55:21 AM6/18/03
to
Hallo Thora

>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

Marco Schäfer

unread,
Jun 18, 2003, 3:04:15 AM6/18/03
to
Hallo Thora, hallo Barbara,

vielen Dank für Eure Hilfe, jetzt klappt es so, wie ich es
brauche.

Marco

Barbara Karli

unread,
Jun 18, 2003, 4:28:56 AM6/18/03
to
Hallo Marco
>vielen Dank für Eure Hilfe, jetzt klappt es so, wie ich es
>brauche.

Schoen dass es geholfen hat - vielen Dank fuer die Rueckmeldung.
-
Liebe Gruesse
Barbara

0 new messages