Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textboxen Datumsumwandlung

Forumthread: Textboxen Datumsumwandlung

Textboxen Datumsumwandlung
05.05.2013 20:09:39
robert
Guten Abend,
ich habe in einer Datei ca 30 Userformen, die einzeln geöffnet werden.
In jeder dieser UF sind ca. 3-8 Textfelder, davon sind mindesten 2 Datumsfelder.
Der Wunsch ist, das Datum 8 stellig ( 14032013 ) einzugeben, aber als Datum
14.03.2013 in Tabelle einzutragen.
Muss ich da jede UF und die jew.Textfelder ansprechen, oder geht das mit einer
UDF oder ähnliches( Klasse ? ).
Um Hilfestellung bittet
robert

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textboxen Datumsumwandlung
05.05.2013 21:40:55
Gerd
Hallo Robert,
egal wie, aus jeder Textbox muss der Text gezogen werden.
Ohne Ansruch auf Perfektion:
Sub test()
Dim X As String
X = "14032013"
X = Datum(X)
If IsDate(X) Then
Tabelle1.cells(1, 2) = CDate(X)
Else: MsgBox (X)
End If
End Sub
Public Function Datum(X As String) As Variant
Dim i As Integer
If Len(X)  8 Then Datum = "Falsche Länge": Exit Function
For i = 8 To 1 Step -1
If Not IsNumeric(Mid$(X, i, 1)) Then Exit For
Next
If CBool(i) Then Datum = "Nicht nur Ziffern": Exit Function
X = Left$(X, 2) & "." & Mid$(X, 3, 2) & "." & Right$(X, 4)
If IsDate(X) Then Datum = X: Exit Function
Datum = "Keine Datumsumwandlung möglich"
End Function
Gruß Gerd

Anzeige
AW: Textboxen Datumsumwandlung
06.05.2013 06:32:37
robert
Hallo Gerd,
naja, wird zwar mühsam, aber der Code funktioniert !
Danke und Gruß
robert

Code abgewandelt
06.05.2013 08:13:21
Erich
Hi Robert,
hier eine Modifikation von Gerds Code:

Option Explicit
Function Txt8ZuDate(strS As String)
Dim ii As Integer, strT As String
If Len(strS)  8 Then
Txt8ZuDate = "Falsche Länge"
Else
For ii = 1 To 8
If Not IsNumeric(Mid$(strS, ii, 1)) Then _
Txt8ZuDate = "Nicht nur Ziffern": Exit Function
Next ii
strT = Format(CLng(strS), "0-00-0000")
If IsDate(strT) Then
Txt8ZuDate = CDate(strT)
Else
Txt8ZuDate = "Keine Datumsumwandlung möglich"
End If
End If
End Function
Im Code der UF kannst du das direkt verwenden, z. B.:
Cells(x, y) = Txt8ZuDate(TextBox1)
Außerdem kannst du die Fkt. auch als UDF in Tabellen nutzen. Hioer ein paar Beispiele:
 AB
1TextDatum
20101190002.01.1900
32802190029.02.1900
429021900Keine Datumsumwandlung möglich
50103190001.03.1900
6  
70506197805.06.1978
81212201212.12.2012
93112299931.12.2999
1012345678Keine Datumsumwandlung möglich
110506e978Nicht nur Ziffern
120506978Falsche Länge

Formeln der Tabelle
ZelleFormel
B2=Txt8ZuDate(A2)

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Danke Erich, funkt ;-) owT
06.05.2013 20:39:01
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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