Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Eingabe in Zelle bestätigen

VBA: Eingabe in Zelle bestätigen
07.06.2024 14:43:20
MarC
Hallo zusammen,

ich habe eine vielleicht für euch eine Frage. Und zwar schreibe ich über ein UserForm ein Datum in irgendeine Zelle. Die wird ohne Probleme übergeben, aber in der eingegebenen Zelle steht noch eine bedingte Formatierung. Diese müsste eigentlich laufen sobald ein Wert eingetragen wird, leider ist das nicht der Fall. Erst wenn ich per Mausklick die Zelle gehe und den Inhalt mit Enter bestätige wird die bedingte Formatierung ausgelöst. Kann mir bitte wer sagen woran das liegt?

Meine Werte übergebe ich mit einem einfachen Befehl:
.Cells(loLetzte, 6) = TextBox3.Value


VG
MarC
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Eingabe in Zelle bestätigen
07.06.2024 14:48:39
Onur
Wie der Name es schon wage andeutet, enthält eine Textbox TEXT.
Wenn du willst, dass daraus eine Zahl wird, musst du schreiben:
.Cells(loLetzte, 6) = cDbl(TextBox3.Value)
AW: VBA: Eingabe in Zelle bestätigen
07.06.2024 15:15:49
daniel
Hi
wenn du einen Wert in eine Zelle schreibst, dann übergibst du grundsätzlich erstmal einen Text und Excel prüft dann, ob dieser Text eine Zahl, ein Datum oder eine Formel sein könnte und wandelt dann die eingabe in das entsprechende um. Kann nichts von den dreien erkannt werden, bleibt die Eingabe Text.

wenn du das von Hand machst, dann wendet Excel für diese Prüfung die deutschen Formatregeln an (je nach Ländereinstellung), dh wenn du sowas in die Zelle schreibst "01.01.2024" dann geht Excel davon aus, dass das ein Datum ist und wandelt entsprechend um.
Machst du das ganz jedoch per VBA, dann wendet Excel immer die amerikanischen Formatregeln an, dh ein Datum müsste dann als "01/01/2024" geschrieben sein, um als solches erkannt zu werden.
daher bleibt dein "01.01.2024" Text.

die einfachste Lösung für solche Fälle ist, anzugeben das die Werte im lokalen Format kommen, also
Cells(...).FormulaLocal = textboxX.Text


das ist auch fehlertolerant.
bei der Lösung von Onur müsstest du das ganze noch mit einem If IsNumeric(Textbox1.Text) absichern, denn sonst bekommst du einen Fehlerabbruch, wenn du in der Textbox was stehen hast, das CDbl nicht umwandeln kann.

und wenn du die Eingabe schon absichern willst, dann nimm besser: If IsDate(Textbox1.text)

Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige