Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum ohne Punkt eingeben

Datum ohne Punkt eingeben
15.04.2007 15:37:41
Uwe Hladik

Hallo an Alle und einen schönen Sonntag,
habe hier im Forum mal folgenden Code gefunden und in meiner Userform eingesetzt um die lästige Punkteingabe im Datum zu vermeiden.
Option Explicit
Dim BoEnter As Boolean


Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   erstellt von Hajo.ziplies@web.de  Stand 01.08.03
'   Datumseingabe  01.01.03;1.1.03 oder komlettes Jahr
'   Eingabe des Tages und des Monat zweistellig werden die Punkte automatisch gesetzt
'   sie können nur gelöscht durch markierung des punktes und der Zahl davor
'   Buchstaben werden ausgeschlossen, nur Zahlen und Punkt
'   die Überprüfung ob Datum erfolgt in 


Private Sub TextBox1_AfterUpdate()
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If Len(TextBox1) = 0 Then
KeyAscii = 0
Else
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 2 Then
KeyAscii = 0
ElseIf Len(TextBox1) > 1 Then
If Mid(TextBox1, Len(TextBox1), 1) = "." Then KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
End If
Case Else
KeyAscii = 0
End Select
End Sub



Private Sub TextBox1_Change()
If BoEnter = True Then Exit Sub
If Len(TextBox1) = 2 Then
If InStr(TextBox1, ".") = 0 And BoEnter = False Then TextBox1 = TextBox1 & "."
ElseIf Len(TextBox1) = 5 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) < 2 Then
TextBox1 = TextBox1 & "."
End If
End If
End Sub



Private Sub TextBox1_AfterUpdate()
BoEnter = True
If Right(TextBox1, 1) = "." Then TextBox1 = Mid(TextBox1, 1, Len(TextBox1) - 1)
'   Jahreszahl vom aktuellen Jahr ergänzen falls nicht vorhanden
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) = 1 Then
TextBox1 = TextBox1 & "." & Year(Date)
End If
If IsDate(TextBox1.Text) Then
If Format(CDate(TextBox1.Value), "dd.mm.yy") <> TextBox1 Then
MsgBox "Das Datum wurde übersetzt"
End If
TextBox1 = Format(CDate(TextBox1.Value), "dd.mm.yy")
Else
TextBox1 = ""
End If
BoEnter = False
End Sub


...nur macht er mir bei der übertragung auf meine Liste einen Fehler.....


Private Sub CommandButton1_Click()   <-------wird gelb dargestellt.
z = Range("A1").End(xlDown).Row + 1  <------ hier unterlegt er das z und sagt "Variable nicht  _
definiert"
If z > 65000 Then z = 2
Cells(z, 1) = ComboBox1
Cells(z, 2) = TextBox1
Cells(z, 3) = TextBox2
Cells(z, 4) = TextBox3
Cells(z, 5) = ComboBox2
Cells(z, 6) = CDbl(TextBox4)
Cells(z, 7) = CDbl(TextBox5)
Cells(z, 8) = CDbl(TextBox6)
Cells(z, 9) = CDbl(TextBox7)
Cells(z, 10) = ComboBox3
Cells(z, 11) = TextBox8
Cells(z, 12) = TextBox9
Cells(z, 13) = TextBox10
UserForm1.Hide
End Sub


... kann mir da einer sagen was geändert werden muß!
Vorab schon mal vielen Dank!
Gruß Uwe

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

Betreff
Datum
Anwender
Anzeige
AW: Datum ohne Punkt eingeben
15.04.2007 15:54:01
fcs
Hallo Uwe,
da du zu Beginn deines Codes die Zeile
Option Explicit
stehen hast, muss du alle im Code verwendeten Variablen deklarien. In deinem Fall also


Private Sub CommandButton1_Click()
Dim z as Long
z = Range("A1").End(xlDown).Row + 1
If z > 65000 Then z = 2


Gruß
Franz

AW: Datum ohne Punkt eingeben
15.04.2007 17:48:19
Uwe Hladik
Hallo Franz,
vielen Dank für die Antwort. Geht super.
Aber mal eine Frage für das deklarieren.
Wieso wird das mit dem Option Explicit gemacht? Da hab ich noch nicht so durchgeblickt.
Gruß Uwe

AW: Datum ohne Punkt eingeben
15.04.2007 18:46:43
fcs
Hallo Uwe,
man kann das Option weglassen, dann kann man variablen beliebig im Code einfügen ohne sich weitere Gedanken darüber zu machen. Leider kann dann auch Wildwuchs entstehen und es passieren ggf. Schreibfehler, die man manchmal nur schwer findet.
Hat man die Option gesetzt, dann muss man sich über die Variablen halt immer ein wenig Gedanken machen. Beim Testen werden Schreibfehler ggf. erkannt, weil diese als nicht deklarierte Variablen gemeldet werden.
Ein weiterer großer Vorteil des Deklarierens von Variablen ist, dass man ihnen durch das Deklarieren gewisse Eigenschaften durch die Typzuweisung mit As .... mitgibt.
Das reduziert bei einfachen Variablen (String, Integer, Double etc. ) ggf. den Speicherbedarf und man erhält ggf. auch Fehlermeldungen wenn falsche Werte zugewiesen werden.
Bei Objektvariablen erleichtert es die Erstellung des Codes. Wenn man z.B. einer Objektvariablen den Typ Worksheet zuweist, dann wird bei entsprechender Einstellung der Optionen, wenn man im VBA-Editor hinter dem Variablennamen einen Punkt einfügt, die Liste der für diesen Variablentyp zulässigen Methoden und Eigenschaften als Auswahlliste angezeigt.
Gruß
Franz

Anzeige
AW: Datum ohne Punkt eingeben
15.04.2007 18:52:47
Uwe Hladik
Hallo Franz,
na da werd ich mich mal mit dem Thema was auseinander setzen. Denke das es für mich als Anfänger, wenn ich es richtig verstanden habe, nur ein Vorteil bei der Fehlersuche sein kann.
Dank dank ich mal sehr für die guten Info´s.
Gruß Uwe

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige