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

Datum und TextBox | Herbers Excel-Forum

Datum und TextBox
07.01.2010 11:25:20
abu

Hallo Zusammen,
kann mir vllt. jemand auf die Spruenge helfen?
Habe eine Userform mit der ich unter anderem eine TextBox fuer ein Datum benutze.
Folgenden Code habe ich dafuer.
Um es vom blatt in die Userform zu holen hab ich diesen Code:
.TextBox45.Value = Sheets("Customer complaints").Cells(Target.Row, 8).Value
Um es zureuck zu schreiben diesen:
.Cells(CInt(Me.Tag), 8).Value = CDate(TextBox45)
Als Beispiel nehmen wir das Datum 07-01-2010
lade ich die Userform zeigt er mir 07-01-2010 an,
schliesse ich die Userform zeigt er im Blatt 07-01-2010 an,
lade ich die Userform erneut zeigt er mir 01-07-2010 an,
schliesse ich die Userform wieder zeigt er 01-07-2010an
mach ich das selbe noch mal wird es wieder richtig angezeigt, im Blatt auch und das geht immer so weiter
Will ich diesen Code aendern:
.TextBox45.Value = Sheets("Customer complaints").Cells(Target.Row, 8).Value
in
.CDate(TextBox45) = ....
bleibt er immer haengen.
Kann mir jemand bitte helfen?
Gruss abu

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
versuche es mal so...
07.01.2010 11:35:08
Tino
Hallo,
, habe ich jetzt nicht getestet.
Lesen in UF
.TextBox45.Value = Format(CDate(Sheets("Customer complaints").Cells(Target.Row, 8).Value2), "dd-mm-yyyy")
Schreiben in die Zelle
.Cells(CLng(Me.Tag), 8).Value = DateValue(Replace(TextBox45, "-", "."))
Gruß Tino
AW: versuche es mal so...
07.01.2010 12:41:03
abu
Hallo Tino,
danke fuer die schnelle Antwort. Habs getestet und wenn ich richtig liege hast du einen kleinen Denkfehler beim laden (konntest du ja nicht wissen). Es wird ja nur mit der Userform eingegeben also steht in der Zelle nie ein '.' der ersetzt werden muss und ich bekomm immer eine Fehlermeldung.
Habs geaendert in:
.Cells(CLng(Me.Tag), 8).Value = DateValue(TextBox45)
und es funzt.
1A, Danke.
Gruss abu
Anzeige
Du schreibst doch...
07.01.2010 12:50:21
Tino
Hallo,
das in der Textbox "07-01-2010" steht und
diese "-" ersetze ich durch einen Punkt.
Ist aber auch egal, es läuft ja jetzt bei Dir.
Gruß Tino
AW: Du schreibst doch...
07.01.2010 13:15:55
abu
oder sorum, egal klappt
danke.
AW: Du schreibst doch...
07.01.2010 14:11:45
abu
Muss doch noch mal nachfragen: Wenn jemand vergisst ein Datum einzutragen bleibt er haengen, sollte aber dann nicht passieren sondern einfach leer bleiben. Gibts da auch ne Loesung fuer?
Gruss abu
AW: Du schreibst doch...
07.01.2010 15:07:55
Tino
Hallo,
baue es doch in eine If, z. Bsp. so
With Sheets("Customer complaints").Cells(Target.Row, 8)
If .Value <> "" And IsDate(.Value) Then
.TextBox45.Value = Format(CDate(.Value2), "dd-mm-yyyy")
Else
.TextBox45.Value = ""
End If
End With
Von der Textbox in die Zelle machst Du auch eine Abfrage, eben wie zuvor schon mal beschrieben.
Gruß Tino
Anzeige
AW: Du schreibst doch...
07.01.2010 15:49:20
abu
Hallo Tino,
habe es so geaendert falls jemand was eintreagt aber kein Datum
With Sheets("Customer complaints").Cells(Target.Row, 8)
If .Value <> "" And IsDate(.Value) Then
.TextBox45.Value = Format(CDate(.Value2), "dd-mm-yyyy")
Else
.TextBox45.Value = Sheets("Customer complaints").Cells(Target.Row, 8).Value
End If
End With
Er bleibt aber in der zweiten Zeile haengen mit der Meldung:
Object doesn't support this property or method
Gruss abu
AW: Du schreibst doch...
07.01.2010 15:50:15
abu
sorry in der Zeile
.TextBox45.Value = Format(CDate(.Value2), "dd-mm-yyyy")
die Userform fehlt noch...
07.01.2010 16:04:33
Tino
Hallo,
entweder einfach
TextBox45.Value = ...
oder
Me.TextBox45.Value = ...
oder
Userform1.TextBox45.Value = ....
Gruß Tino
Anzeige
AW: die Userform fehlt noch...
07.01.2010 16:44:09
abu
so und die letzte fuer heute (hoffe ich).
kannst du mir noch sagen was ich falsch mache beim zurueckschreiben, es laeuft durch allerdings wenn ich den Wert der Box aendere und dann die Userform schliesse, hab ich wieder den ausgangswert da stehen:
With Sheets("Customer complaints").Cells(CLng(Me.Tag), 8)
If Ausgabe.TextBox45.Value <> "" And IsDate(.Value) Then
.Cells(CLng(Me.Tag), 8).Value = Format(CDate(.Value2), "dd-mm-yyyy")
Else
.Cells(CInt(Me.Tag), 8).Value = TextBox45.Value
End If
End With
AW: die Userform fehlt noch...
07.01.2010 16:55:17
Tino
Hallo,
teste mal
With Sheets("Customer complaints").Cells(CLng(Me.Tag), 8)
If Ausgabe.TextBox45.Value <> "" Then
.Cells(CLng(Me.Tag), 8).Value = DateValue(Replace(Ausgabe.TextBox45.Value, "-", "."))
Else
.Cells(CLng(Me.Tag), 8).Value = ""
End If
End With
Gruß Tino
Anzeige
AW: die Userform fehlt noch...
07.01.2010 17:01:38
abu
nee leider auch nicht. Fehlermeldung Type missmatch in Zeile 3.
versteh ich nicht ganz deinen Code: moechte ja eigentlich nur das ich den Wert in TextBox45 wieder aendern kann und er keine Fehlermeldung gibt selbst wenn da Buchstaben stehen.
Muss jetzt leider weg aber wuerde mich gerne Morgen frueh weiter mit dir unterhalten.
Wuensch dir einen schoenen abend.
Gruss
abu
AW: hier ein einfaches Beispiel...
08.01.2010 08:42:39
abu
Guten Morgen Tino,
dein Beispiel funtioniert leider auch nicht...
Gruss abu
Anzeige
bei funktioniert es unter xl2007 u. 2003
08.01.2010 09:19:52
Tino
Hallo,
was soll ich dazu nun sagen, habe es soeben unter xl2003 nochmal getestet und es funktioniert.
Gruß Tino
AW: bei funktioniert es unter xl2007 u. 2003
08.01.2010 09:26:29
abu
Hallo,
habe auch 2003 und egal was ich probiere, bleibt er im Sub SchreibeDatum in der 3 Zeile stecken mit der Fehlermeldung Type missmatch.
Selbst wenn ich nichts am Datum aendere und es wie es war ins sheet zurueck schreiben alssen will.
Gruss
abu
AW: bei funktioniert es unter xl2007 u. 2003
08.01.2010 09:37:48
Tino
Hallo,
schau mal ob diese Verweise bei Dir gesetzt sind.
Im VBA unter Extras -> Verweise
Userbild
Wie ist die Ländereinstellung für Datumsformate auf Deinem System, vielleicht liegt es auch daran?
Vielleicht geht es auch mit dieser Version.
https://www.herber.de/bbs/user/67067.xls
Gruß Tino
Anzeige
AW: bei funktioniert es unter xl2007 u. 2003
08.01.2010 10:26:52
abu
Ms Forms 2.0 hab ich nicht, koennte es daran liegen?
Leider finde ich keine Seite von der ich downloaden kann (hier sind bestimmte Seiten gesperrt) und selbst auf der MS-Seite kann ich es nicht finden. Aber auch wenn ich es finde und installiere, werde ich weiter probleme haben da die arbeitsmappe shared ist und mehrere user daruf zugreifen, muesste es von IT irgendwie installiert bekommen so das es bei jedem user eingebunden ist und das kann ich glaub ich in dem laden hier vergessen...
Ms Forms 2.0 wird automatisch gesetzt.
08.01.2010 10:48:16
Tino
Hallo,
wenn Du eine UF erstellst wird dieser Verweis automatisch gesetzt,
versuche es mal in einer neuen Excel- Datei.
Sonst müsstest Du dich an Deinen IT- Beauftragten wenden oder einen
Admin der Dein Excel nochmal Installiert.
Gruß Tino
Anzeige
AW: Ms Forms 2.0 wird automatisch gesetzt.
08.01.2010 11:11:07
abu
Hallo Du hast recht, mit Userform ist MS Forms auch da.
Zu meinem eigentlichen Problem:
Ich habe diesen Code um zurueckzuschreiben:
With Sheets("Customer complaints").Cells(CLng(Me.Tag), 8)
If Ausgabe.TextBox45.Value <> "" And IsDate(.Value) Then
.Cells(CLng(Me.Tag), 8).Value = DateValue(TextBox45)
Else
.Cells(CInt(Me.Tag), 8).Value = TextBox45.Value
End If
End With
Wenn ich z.B 04-01-2010 schreibe, alles ok
Wenn ich 04.01.2010 schreibe bekomm ich Fehlermeldung (Type missmatch). Warum? ist doch auch ein Datum und selbst wenn excel das nicht als Datum erkennt, muss er doch von If in Else springen.
Selbe gilt wenn ich Text schreibe, dann muss er doch ins Else und es als normalen Text schreiben aber ich bekomm dieselbe Fehlermeldung.
Wo liegt mein Denkfehler?
Gruss
Abu
Anzeige
AW: Ms Forms 2.0 wird automatisch gesetzt.
08.01.2010 11:21:12
Tino
Hallo,
die Zeilen müssten so aussehen.
With Sheets("Customer complaints").Cells(CLng(Me.Tag), 8)
If IsDate(Ausgabe.TextBox45.Value) Then
.Value = DateValue(Ausgabe.TextBox45.Value)
Else
.Value = ""
End If
End With
Gruß Tino
AW: Ms Forms 2.0 wird automatisch gesetzt.
08.01.2010 11:35:21
abu
Perfekt!
Hab noch dieses geandert: .Value = TextBox45.Value
Jetzt hab ich es Idiotensicher.
1000 x Danke fuer deine Hilfe und Geduld.
Gruss abu

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige