Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Cdate Textbox

Cdate Textbox
24.03.2022 10:25:43
Kuni
Guten Morgen zusammen,
ich habe eine UF, die mit einigen Texboxen gefüllt ist. Drei davon werden nach Bedarf mit einem Datum gefüllt und bleiben sonst leer. Nun habe ich das Problem, wenn diese TextBox leer bleibt, bekomme ich die Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" .
Vielleicht habt Ihr ja eine Idee, wie dieses Problem behoben werden kann und ich die eingegeben Daten in meiner UF an das Ziel Arbeitsblatt übergeben kann.

Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:=""
Dim FinalRow As Long
FinalRow = ActiveSheet.ListObjects(1).ListRows.Count + 4
Cells(FinalRow, 13).Value = UserForm1.TextBox1.Value
Cells(FinalRow, 12).Value = UserForm1.TextBox4.Value
Cells(FinalRow, 14).Value = UserForm1.TextBox5.Value
Cells(FinalRow, 15).Value = UserForm1.TextBox6.Value
Cells(FinalRow, 16).Value = UserForm1.TextBox7.Value
Cells(FinalRow, 17).Value = UserForm1.TextBox8.Value
Cells(FinalRow, 19).Value = UserForm1.TextBox9.Value
Cells(FinalRow, 23).Value = UserForm1.TextBox10.Value
Cells(FinalRow, 22).Value = UserForm1.TextBox11.Value
Cells(FinalRow, 9).Value = CDate(UserForm1.TextBox12.Value)
Cells(FinalRow, 10).Value = CDate(UserForm1.TextBox18.Value)
Cells(FinalRow, 18).Value = UserForm1.ComboBox2.Value
Cells(FinalRow, 21).Value = UserForm1.ComboBox3.Value
Cells(FinalRow, 1).Value = UserForm1.TextBox16.Value
Cells(FinalRow, 2).Value = CDate(UserForm1.TextBox15.Value)
Cells(FinalRow, 8).Value = UserForm1.TextBox17.Value
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowSorting:=True, AllowFiltering:=True
End Sub
Danke
Grüße Kuni

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cdate Textbox
24.03.2022 10:30:57
{Boris}
Hi,
prüfe vorher, ob der Textboxwert numerisch ist:

If IsNumeric(UserForm1.TextBox12.Value) Then
Cells(FinalRow, 9).Value = CDate(UserForm1.TextBox12.Value)
End If
VG, Boris
AW: Cdate Textbox
24.03.2022 11:11:54
Oberschlumpf
Hi Boris,
vielleicht unwahrscheinlich, aber nich unmöglich....
Wenn man in Eile ist und z Bsp das heute-Datum so eingibt:
24,0322
Dann ist die Eingabe zwar schon mal numerisch, aber trotzdem nicht "datumerisch" :-)
Hallo Fragesteller,
deswegen bietet es sich vielleicht an, zusätzlich eine Prüfung vorzunehmen, ob Eingabe auch ein Datum ist:

If IsNumeric(UserForm1.TextBox12.Value) Then
If IsDate(UserForm1.TextBox12.Value) Then
Cells(FinalRow, 9).Value = CDate(UserForm1.TextBox12.Value)
End If
End If
Hilfts?
Ciao
Thorsten
Anzeige
Dann kann man sich...
24.03.2022 13:12:09
{Boris}
Hi Thorsten,
...aber die zusätzliche Abfrage auf IsNumeric sparen - die reine IsDate-Abfrage reicht dann aus.
VG, Boris
AW: Dann kann man sich...
24.03.2022 17:37:27
Oberschlumpf
Hi Boris,
das mag vielleicht stimmen, aber ich weiß nich, ob IsDate("") von VBA mit True oder False interpretiert wird. (ich habs nich ausprobieren können)
Wenn True, wäre man mit IsNumeric("") auf Nummer ganz sicher.
Ciao
Thorsten
IsDate
25.03.2022 14:31:39
{Boris}
Hi Thorsten,

IsDate-Funktion
Gibt True zurück, wenn der Ausdruck ein Datum oder als gültige Datums- oder Uhrzeitangabe erkennbar ist; andernfalls wird False zurückgegeben.
Und ein Leerstring liefert demnach auch False.
Insofern ist die Prüfung auf IsDate in der Tat völlig ausreichend.
VG, Boris
Anzeige
AW: Cdate Textbox
24.03.2022 13:18:08
Kuni
Hallo Boris
Hallo Torsten,
danke erstmal für Eure Antworten. Ich beschreibe mein Problem nocheinmal anders, ich gebe Daten über eine Eingabemaske ein. In dieser sind die Textbox 12,15 und 18 für eine Eingabe eines Datum vorgesehen. Da diese nicht immer mit einem Datum beschrieben werden und somit Leer bleiben, bekomme ich eben die Fehlermeldung "Laufzeitfehler 13 ... "
Das die Textbox nur Zahlen nimmt, habe ich schon hinbekommen. ;-)
Grüße Kuni
Hast Du eigentlich mal ausprobiert...
24.03.2022 13:21:54
{Boris}
Hi,
...was wir Dir geschrieben haben?
VG, Boris
AW: Hast Du eigentlich mal ausprobiert...
24.03.2022 13:55:23
Kuni
Was meinst Du jetzt genau Boris ?
Versteh ich nicht...
24.03.2022 14:17:25
{Boris}
Hi,
ich hatte eingangs geschrieben:

If IsNumeric(UserForm1.TextBox12.Value) Then
Cells(FinalRow, 9).Value = CDate(UserForm1.TextBox12.Value)
End If
Also nicht einfach den Textboxinhalt der Zelle zuweisen, sondern die Zuweisung in eine If-Bedingung packen, die den Textboxinhalt auf ZAHL überprüft.
Trifft die Bedingung nicht zu, IsNumeric liefert also FALSE, wird auch nix eingetragen und es gibt keine Mecker.
Thorsten hatte dann noch mit IsDate ergänzt - darauf hin hab ich geschrieben, dass IsDate allein ausreicht - also IsNumeric zusätzlich nicht mehr nötig ist.
Was dann final bedeutet:

If IsDate(UserForm1.TextBox12.Value) Then
Cells(FinalRow, 9).Value = CDate(UserForm1.TextBox12.Value)
End If
Aber das war jetzt nur eine Zusammenfassung aller bisherigen Antworten.
Wo genau hapert es in der Umsetzung?
VG, Boris
Anzeige
hahaha..ok...ohne Worte
24.03.2022 17:38:30
Oberschlumpf
na gut...doch n paar Worte...
24.03.2022 17:41:05
Oberschlumpf
Hi Fragesteller,
ich versteh nich, wieso du unsere Tipps nicht ausprobiert hast - hättest du probiert, gäbe es schon mit der Kontrolle IsNumeric()? schon nicht mehr Laufzeitfehler 13, wie Boris ja auch schon erklärte.
Na ja, ich wünsch weiter Gutels Gelingen...
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige