Anzeige
Archiv - Navigation
556to560
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
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textbox Falsche eingabe

Textbox Falsche eingabe
29.01.2005 22:56:44
walter
Hallo Zusammen,
habe folgendes Makro:
'---------------- Erstzulassung ------------------------------------------------

Private Sub TextBox16_AfterUpdate()
If IsDate(TextBox16) = False Then
MsgBox "Nur Datums Wert!", vbCritical
TextBox16 = Format(CDate("dd.MM.yyyy"))
TextBox16.SetFocus
With TextBox16
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
ThisWorkbook.Worksheets("Prov-Blatt").Range("ad68") = Format(CDate(TextBox16), "dd.MM.yyyy")
TextBox16 = Format(CDate(Worksheets("Prov-Blatt").Range("ad68").Value), ("dd.MM.yyyy"))
End If
End Sub

Wenn ein Buchstabe eingegeben wird habe ich eine Fehlermeldung:
Laufzeitfehler 13 Typen unverträglich und bleibt dann hier stehen:
ThisWorkbook.Worksheets("Prov-Blatt").Range("ad68") = Format(CDate(TextBox16), "dd.MM.yyyy")
Kann mir jemand einenTip geben, damit nicht diese Fehlermeldung kommt?
Gruß Walter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Falsche eingabe
29.01.2005 23:25:25
Josef
Hallo Walter!
Vor "Else" fehlt ein "Exit Sub" damit die Routine verlassen wird, bevor
der Eintrag in die Tabelle vorgenommen wird!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Leider immer noch...
30.01.2005 12:44:50
walter
Hallo Sepp,
leider immer noch Fehlermeldung.
Gruß Walter
AW: Leider immer noch...
30.01.2005 12:55:13
Josef
Hallo Walter!
Probier mal so!

Private Sub TextBox16_AfterUpdate()
If IsDate(TextBox16) Then
ThisWorkbook.Worksheets("Prov-Blatt").Range("ad68") = Format(CDate(TextBox16), "dd.MM.yyyy")
TextBox16 = Format(CDate(Worksheets("Prov-Blatt").Range("ad68").Value), ("dd.MM.yyyy"))
Else
MsgBox "Nur Datums Wert!", vbCritical
With TextBox16
.Value = Format(CDate("dd.MM.yyyy"))
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: Leider immer noch... und hie...
30.01.2005 13:05:49
walter
Hallo Sepp,
leider immer noch und bleibt hier:
".Value = Format(CDate("dd.MM.yyyy"))"
stehen.
Gruß Walter
AW: Leider immer noch... und hie...
30.01.2005 13:09:18
Josef
Hallo Walter!
Das muss

= Format(Date, "dd.MM.yyyy")

heisen!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Danke funktioniert
30.01.2005 15:14:05
walter
Hallo Sepp,
jetzt funktioniert es,
Danke
Walter
Bitte noch einmal...
30.01.2005 15:17:58
walter
Hallo Sepp,
jetzt funktioniert mein Set Focus nicht, geht in die nächste TextBox.
Gruß Walter
AW: Bitte noch einmal...
30.01.2005 16:09:52
Josef
Hallo Walter!
Probier mal diesen Code anstatt im "AfterUpdate" im "Exit" Ereignis!

If IsDate(TextBox16) Then
ThisWorkbook.Worksheets("Prov-Blatt").Range("ad68") = Format(CDate(TextBox16), "dd.MM.yyyy")
TextBox16 = Format(CDate(Worksheets("Prov-Blatt").Range("ad68").Value), ("dd.MM.yyyy"))
Else
MsgBox "Nur Datums Wert!", vbCritical
Cancel = True
With TextBox16
.Value = Format(Date, "dd.MM.yyyy")
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
Funktioniert aber meine Farbe...
30.01.2005 16:31:13
walter
Hallo Sepp,
funktioniert.
Leider wird jetzt meine Farbe nicht mehr angezeigt da ich mein anders Makro
nicht gleichzeit angezeigt wird.
Wie kriege ich das hin ?
Gleichzeit habe ich festgestellt das nach verlassen der TextBox (vorher war das so) die Textbox noch hellrot war, hängt das damit zusammen weil dies die letzt TextBox in meinem Rahmen ist ?
Die anderen funktionieren.
Vielleicht kannst Du mir noch einen Tip geben ?
Gruß Walter
Funktioniert...
30.01.2005 16:47:38
walter
Hallo Sepp,
anbei mein verändertes Makro un d das Zusätzliche für die Einfärbung, wenn man in der
TextBox ist.

Private Sub TextBox16_Enter()
TextBox16.BackColor = &HC0C0FF               'Hell-Rot
End Sub


Private Sub TextBox16_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox16) Then
ThisWorkbook.Worksheets("Prov-Blatt").Range("ad68") = Format(CDate(TextBox16), "dd.MM.yyyy")
TextBox16 = Format(CDate(Worksheets("Prov-Blatt").Range("ad68").Value), ("dd.MM.yyyy"))
Else
MsgBox "Nur Datums Wert!", vbCritical
Cancel = True
With TextBox16
.Value = Format(Date, "dd.MM.yyyy")
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
TextBox16.BackColor = &H80000005
End Sub

Funktioniert auch !!!
Habe wenn ich darf noch 2 Fragen ?
1. Wie kann ich es bewirken, das die Zelle Dunkelrot bleibt, wenn > 0 ist,
bei Exit und Update Ereignis ?
2. In meinem Frame ist die die Letzte TextBox, da bleibt die Farbe hellrot sonst also
innerhalb des Frames funktioniert alles also hellrot und nach verlassen wieder weiß.
Gruß Walter
Anzeige
AW: Funktioniert...
30.01.2005 16:58:06
Josef
Hallo Walter!
Freut mich wenns klappt!
Zu deinen Fragen:
1. Setz' einfach um das Zurücksetzten der Farbe, eine abfrage.

If TextBox16 > 0 Then TextBox16.BackColor = &H80000005

2. Bei Frames must du auch in das Exit-Ereignis des Frames den
Code zum zurücksetzen der Farbe stellen!

Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox16 > 0 Then TextBox16.BackColor = &H80000005
If TextBox17 > 0 Then TextBox17.BackColor = &H80000005
'usw.
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
Geil... allles Super
30.01.2005 17:03:38
walter
Hallo Sepp,
ich bin begeistert,
funktioniert alles.
Gruß Walter
und noch schönen Sonntag !!!
Dir auch ;-)) o.T.
30.01.2005 17:09:13
Josef
Gruß Sepp

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige