VBA-Formel liefert nicht gewünschten Wert
onkelbobby
über ein User-Formular gebe ich Daten in eine Tabelle ein. Es sollen nach der Eingabe dieser Daten auch Berechnungen durchgeführt werden. Unter anderem möchte ich in Spalte 29 den Monat des eingegebenen Datums aus Spalte 10 eintragen lassen.
Das funktioniert direkt in der Tabelle durch die Formal "=MONAT(J26)" (für Zeile 26) soweit ganz gut.
Da diese Formel jedoch immer nur für neu eingegebene Zeilen angewendet werden soll habe ich folgende Zeile in den VBA-Code eingefügt:
Private Sub CommandButton1_Click()
Dim z As Integer
z = Range("A65536").End(xlUp).Row + 1
Cells(z, 1) = TextBox1
Cells(z, 2) = TextBox2
Cells(z, 4) = TextBox3
...
Cells(z, 29).Select
ActiveCell.FormulaR1C1 = "=MONAT(RC[-19])"
...
Soweit, so gut.
Tatsächlich wird nach Betätigung des Buttons der Wert
=MONAT(J26)
für beispielsweise Zeile 26 eingetragen. In AC26 steht aber statt der Monatszahl "#NAME?".
Wenn ich dann in die Eingabezeile klicke und Return drücke erscheint komischerweise das gewünschte Ergebnis (an der Formel wird nichts geändert). Warum ist das so?
Wie kann ich ausserdem bei den UserForms feste Eingabewerte definieren (z. B. dass zwingend ein Datum oder eine achtstellige Nr. eingegeben werden muss?