Tonisailer schrieb am 05.May.2010, 15:58:24 in der Kategorie pc.sw.office
Function AlterStichtag(Stichtag, GebDatum)
Dim jalter
jalter = Year(Stichtag) - Year(GebDatum)
If Month(Stichtag) < Month(GebDatum) Then
jalter = jalter - 1
Else
If Month(Stichtag) = Month(GebDatum) Then
If Day(Stichtag) < Day(GebDatum) Then
jalter = jalter - 1
End If
End If
End If
AlterStichtag = jalter
End Function
Diese Funktion klappt auch, wenn ich sie manuell in eine Zelle schreibe. Nun möchte ich aber mit folgendem Code diese Funktion unter Verwendung der Inputbox in einen ganzen Spaltenbereich schreiben lassen:
Dim Stichtag As Variant
Stichtag = InputBox(\"Geben Sie den Stichtag ein\")
Set Bereich = Range(Cells(2, j + 1), Cells(lngZeilen, j + 1))
Bereich.FormulaR1C1 = \"=AlterStichtag(\" & Stichtag & \",RC\" & j & \")\"
Bereich.NumberFormat = \"0\"
End Sub
Beim Ausführen des Codes erhalte ich den Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler. Ich weiß, dass die Inputbox mir einen String zurückgibt, habe daher diesen mit CDate umgewandelt, erfolglos; ebenfalls scheiterten mehrere Varianten, die Variable \"Stichtag\" in dem Code in zusätzlichen Anführungszeichen bzw. Hochkommata zu setzen.
Was ist an meinem Code verkehrt?
Bin für jeden Tipp dankbar.
Gruß aus dem Bergischen Land
Toni