HERBERS Excel-Forum - das Archiv

Thema: VBA - Eintrag über Userform (F2+Enter)

VBA - Eintrag über Userform (F2+Enter)
Tom
Guten Morgen,

Ich habe eine einfache kurze Frage. Über eine Userform mache ich Einträge in einer Excel Liste. Funktioniert auch, leider nicht meine bedingte Formatierung.

Gibt es die Möglichkeit, dass per VBA in dem Bereich (NF9 bis OT9) geprüft wird ob ein Eintrag vorhanden ist und wenn ja dann F2+Enter ausgeführt wird, damit die bedingte Formatierung aktiviert wird. Oder das nach dem Eintrag in der Userform F2 und Enter ausgeführt wird.

Ich wäre dankbar über jede Hilfe.

VG
Tom
AW: VBA - Eintrag über Userform (F2+Enter)
daniel
Hi
das sollte eigentlich automatisch funktionieren.
das mit dem F2 hört sich eher so an, als würdests du einen Text in die Zelle schreiben, welcher dann in eine Zahl oder ein Datum gewandelt werden muss.
kannst du die Datei hochladen?
Gruß Daniel
AW: VBA - Eintrag über Userform (F2+Enter)
Tom
Ja, stimmt. Das war es. Ich weiß jetzt nicht genau wo ich meinen Code einstellen soll. Hier mal mein Code:




Private Sub CommandButton1_Click()
Dim iClick As Integer

Dim rngZiel As Range
'Range("NF9").Value = CDate(TextBox1)
'Range("NG9").Value = CDate(TextBox2)

If IsEmpty(Range("NF9")) Then
Set rngZiel = Range("NF9")


ElseIf IsEmpty(Range("NG9")) Then
Set rngZiel = Range("NG9")


Else
Set rngZiel = Range("NF9").End(xlToRight).Offset(0, 1)

End If

rngZiel.Value = CDate(TextBox1)
rngZiel = TextBox1
rngZiel.Value = CDate(TextBox2)
rngZiel.Offset(0, 1) = TextBox2
Set rngZiel = Nothing

iClick = MsgBox(prompt:="Datum eingetragen", Buttons:=vbOKCancel)


End Sub

AW: VBA - Eintrag über Userform (F2+Enter)
daniel
Hi

probiere mal den Übertrag von Textbox in Zelle mit: Range(...).FormulaLocal = TextboxX.Text
übergib auch die Werte aus den Datumsfeldern so.
normalerweise macht Excel die Umwandlung der Eingabe zu Zahl oder Datum immer automatisch.
Das Problem an der Sache ist, dass wenn der Wert von VBA kommt, die amerikanischen Formate zugrunde gelegt werden, um ein Datum zu erkennen und auch ein CDate gibt das landestypische = deutsche Format aus.
mit .FormulaLocal gibst du jetzt an, dass die folgenden Werte zwar von VBA kommen, aber auf Deutsch geschrieben werden.
dh dein Excel wird jetzt ein "31.12.2024" aus der Textbox als Datum erkennen, mit .Formula oder .Value müsste es ein "12/31/2024" sein.

Gruß Daniel
AW: VBA - Eintrag über Userform (F2+Enter)
Tom
Und wo müsste ich die in meinen Code dann einfügen?
AW: VBA - Eintrag über Userform (F2+Enter)
Tom
Wenn ich das so mache funktioniert es.. Aber nur für die ersten beiden Eintragungen. Bei den anderen Eintragungen die dahinter kommen, macht er das nicht.



Private Sub CommandButton1_Click()
Dim iClick As Integer

Dim rngZiel As Range
Range("NF9").Value = CDate(TextBox1)
Range("NG9").Value = CDate(TextBox2)

If IsEmpty(Range("NF9")) Then
Set rngZiel = Range("NF9")


ElseIf IsEmpty(Range("NG9")) Then
Set rngZiel = Range("NG9")

Else
Set rngZiel = Range("NF9").End(xlToRight).Offset(0, 1)

End If
rngZiel = TextBox1
'rngZiel.Value = CDate(TextBox1.Text)
'rngZiel.FormulaLocal = TextBox1.Text
rngZiel.Offset(0, 1) = TextBox2
'rngZiel.Value = CDate(TextBox2.Text)
'rngZiel.FormulaLocal = TextBox2.Text
Set rngZiel = Nothing

'iClick = MsgBox(prompt:="Datum eingetragen", Buttons:=vbOKCancel)


End Sub