ich möchte mal was probieren.Wer kann helfen?
1. Wie bindet man eine Funktion (Datedif)in VBA ein?
2. Was ist bei meinen Makro falsch? Ich nehme an, es ist die Formatierung des Ergebnisses.
Vielen Dank bereits im voraus
Peter
Vielen Dank bereits im voraus
Peter
Welche Fehlermeldung erhältst Du bei Deinem Makro? Ich vermute, es liegt einfach daran, dass Du hinter Worksheets(1).Cells einen Zeilenumbruch geschrieben hast. Besser ist, Du packst alles in eine Zeile oder wenn nötig, arbeitest mit Fortsetzungszeilen:
Worksheets(1).Cells(i, 2) = _
Alter ' der Unterstrich am Ende der Vorzeile ist wichtig.
Gruß Harald
P.S.: Es ist aus meiner Sicht immer besser, wenn Du die verwendeten variablen explizit deklarierst, dann kann bereits der Compiler Fehler erkennen, die auf unverträglichen Typen basieren.
Also:
Gruß Harald
bei Deinem Makro erhälst Du das Ergebnis als Zahl. Das ist soweit richtig, da Excel ja das Datum als fortlaufende Zahl speichert und auch entsprechend rechnet.
Du kannst die Zelle ja formatieren. Aber ob das Ergebnis, in diesem Fall weiterhilft glaube ich nicht. Du solltest sagen, wie
Du das Ergebnis formatiert haben willst. Eventuell Ausgabe:
"Sie sind >Jahre< >Monate< und >Tage> alt".
Gruß
heinerv
hier mal ne kleine Info zum Thema:
http://xlfaq.herber.de/texte/012898h.htm
Bye
Nike
Sub Alter_VBA()
'=DATEDIF(A13;HEUTE();"y") 'Funktion
For i = 1 To 3
Datum = DateSerial(Year(Date), Month(Date), Day(Date))
Geb = Worksheets(1).Cells(i, 1).Value
If Not IsDate(Geb) Then Exit Sub
Alter = (Datum - Geb) - 1
Worksheets(1).Cells(i, 2).NumberFormat = "yy"
Worksheets(1).Cells(i, 2) = Alter 'Formatierung falsch???
Next i
End Sub
Gruß
Lutz