Hallo Rainer,
List1.AddItem DateDiff(„YYYY“, „11.09.2001“, „10.09.2010“)
List1.AddItem DateDiff(„YYYY“, „11.09.2001“, „11.09.2010“)
List1.AddItem DateDiff(„YYYY“, „11.09.2001“, „12.09.2010“)
In der Liste steht dann tatsächlich 3 X 9.
Erwartet hätte ich 8,9,9.
ähem, ich auch Okay, ich hab nicht in Vba getestet sondern in Excel mit Datedif (ja, da fehlt ein f *gg*)
Das sieht dann als Formel in einer Zelle so aus:
=DATEDIF(A1;B1;„y“)
und da kommt 8,9,9 raus.
Scheinbar wurden alle bisherigen Anfragen die ich zum Thema „Altersberechnung“ je las immer mit Excelformeln gelöst, und da klappt es ja.
Übrigens, Auch mit Schaltjahren dazwischen.
Warum es bei Vba-Datediff nun zu Fehlern kommt, weiß ich nicht.
Thomas zu Hüüüülf *wünsch* *lächel*
Ich weiß zwar daß sich Excel-Vba und Excel am 1.1.1900 unterscheiden, für die eine Seite ist es tag 0, für die andere Tag 1, von mir aus beginnt für die eine Seite das Ganze auch am 0.1.1900.
Irgendwie klappts dann doch wieder bei den Ergebnissen.
Aber ich sehe da keinen bezug zu diese problematik.
@Anfrager, Abhilfe wäre z.B. wenn du kurzzeitig in eine unbenutzte Zelle mit .Formula in etwa sowas reinschreibst,
ActiveCell.FormulaR1C1 = „=DATEDIF(RC[-2],RC[-1],“„Y“")"
und das Ergebnis ausliest, danach die Zelle wieder löschst.
Natürlich passt die Formel nicht, du hast ja keine Zellen sondern eine Textbox oder so, aber das prinzip ist das Gleiche.
Frag hier nach wenn du den Code nicht hinkriegst.
Gruß
Reinhard