Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
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

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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige