Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Geburtsjahre

Geburtsjahre
19.09.2016 07:24:17
Jürgen
Hallo,
durch diesen Code ermittle ich wie Alt jemand ist.
TextBox4.Value = WorksheetFunction.RoundDown((Now() - CDate(TextBox3)) / 365, 0) & " Jahre"
text Box 3 gebe ich das Datum ein und Text Box4 kommen die Jahre heraus.
Irgendwie passt es beim 01.10.1969 nicht. Da kommt 47 Jahre heraus. Kann aber nicht sein, weil er immer noch 46 Jahre ist.
Wo liegt der Fehler?
Danke
Jürgen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geburtsjahre
19.09.2016 07:33:35
Frank
Hallo Jürgen!
Ich habe es so gelöst.
If IsDate(TextBox3) Then
If Date < CDate(Format(CDate(TextBox3), "dd.mm.") & Format(Now, "YYYY")) Then
TextBox4 = DateDiff("yyyy", CDate(TextBox3), Date) - 1
Else
TextBox4 = DateDiff("yyyy", CDate(TextBox3), Date)
End If
End If
Die TextBox4 wird beim Verlassen der TextBox3 gefüllt.
Konnte ich helfen. Rückmeldung wäre nett.
Gruß Frank H.
super danke dir
19.09.2016 08:34:29
Jürgen
.
AW: Geburtsjahre
19.09.2016 10:23:47
Peter
Hallo Jürgen,
das folgende Makro könnte helfen.
Es ermittelt allerdings aus dem Datum in TextBox1 die Jahre in TextBox2
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If bCancel Then Exit Sub
If TextBox1.Value = "" Then
MsgBox "Sie sollten bitte ein Datum eingeben - danke.", _
48, "   Hinweis für " & Application.UserName
TextBox1.SetFocus
Exit Sub
End If
If IsDate(TextBox1.Value) Then
If (Month(Date) 

Gruß Peter
Anzeige
AW: Geburtsjahre Fehler: 1 Jahr =365,25 Tage
19.09.2016 09:55:14
Daniel
Hi
ein Jahr ist nicht genau 365 Tage lang, sondern c.a. 365,25 Tage, deswegen ist ja alle 4 Jahre ein Schaltjahr (und weil's nicht ganz genau 365,25 Tage sind, fällt dieses Schaltjahr ab und zu mal aus)
bei den 47 Jahren beträgt der Fehler dann schon 12 Tage.
wenn dann:
TextBox4.Value = WorksheetFunction.RoundDown((Now() - CDate(TextBox3)) / 365.25, 0) & " Jahre"
aber auch damit ist der Fehler nicht ganz weg, sondern nur auf +/- 1 Tag beschränkt.
genauer ist:
GebDat = Cdate(Textbox3.Text)
TextBox4.Value = Year(Now) - Year(GebDat) + (Now > DateSerial(Year(Now), Month(Gebdat), Day(Gebdat)))

Gruß Daniel
Anzeige
Danke an alle :-)
19.09.2016 12:18:49
Jürgen
.
Danke an alle :-)
19.09.2016 12:48:13
Jürgen
.
Danke an alle :-)
19.09.2016 14:17:26
Jürgen
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige