Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Datum und TextBox | Herbers Excel-Forum


Betrifft: Datum und TextBox von: abu
Geschrieben am: 07.01.2010 11:25:20

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

  

Betrifft: versuche es mal so... von: Tino
Geschrieben am: 07.01.2010 11:35:08

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


  

Betrifft: AW: versuche es mal so... von: abu
Geschrieben am: 07.01.2010 12:41:03

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


  

Betrifft: Du schreibst doch... von: Tino
Geschrieben am: 07.01.2010 12:50:21

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


  

Betrifft: AW: Du schreibst doch... von: abu
Geschrieben am: 07.01.2010 13:15:55

oder sorum, egal klappt
danke.


  

Betrifft: AW: Du schreibst doch... von: abu
Geschrieben am: 07.01.2010 14:11:45

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


  

Betrifft: AW: Du schreibst doch... von: Tino
Geschrieben am: 07.01.2010 15:07:55

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


  

Betrifft: AW: Du schreibst doch... von: abu
Geschrieben am: 07.01.2010 15:49:20

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


  

Betrifft: AW: Du schreibst doch... von: abu
Geschrieben am: 07.01.2010 15:50:15

sorry in der Zeile
.TextBox45.Value = Format(CDate(.Value2), "dd-mm-yyyy")


  

Betrifft: die Userform fehlt noch... von: Tino
Geschrieben am: 07.01.2010 16:04:33

Hallo,

entweder einfach
TextBox45.Value = ...
oder
Me.TextBox45.Value = ...
oder
Userform1.TextBox45.Value = ....

Gruß Tino


  

Betrifft: AW: die Userform fehlt noch... von: abu
Geschrieben am: 07.01.2010 16:44:09

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


  

Betrifft: AW: die Userform fehlt noch... von: Tino
Geschrieben am: 07.01.2010 16:55:17

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


  

Betrifft: AW: die Userform fehlt noch... von: abu
Geschrieben am: 07.01.2010 17:01:38

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


  

Betrifft: hier ein einfaches Beispiel... von: Tino
Geschrieben am: 07.01.2010 17:27:44

Hallo,

https://www.herber.de/bbs/user/67050.xls


Gruß Tino


  

Betrifft: AW: hier ein einfaches Beispiel... von: abu
Geschrieben am: 08.01.2010 08:42:39

Guten Morgen Tino,

dein Beispiel funtioniert leider auch nicht...

Gruss abu


  

Betrifft: bei funktioniert es unter xl2007 u. 2003 von: Tino
Geschrieben am: 08.01.2010 09:19:52

Hallo,
was soll ich dazu nun sagen, habe es soeben unter xl2003 nochmal getestet und es funktioniert.

Gruß Tino


  

Betrifft: AW: bei funktioniert es unter xl2007 u. 2003 von: abu
Geschrieben am: 08.01.2010 09:26:29

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


  

Betrifft: AW: bei funktioniert es unter xl2007 u. 2003 von: Tino
Geschrieben am: 08.01.2010 09:37:48

Hallo,
schau mal ob diese Verweise bei Dir gesetzt sind.

Im VBA unter Extras -> Verweise



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


  

Betrifft: AW: bei funktioniert es unter xl2007 u. 2003 von: abu
Geschrieben am: 08.01.2010 10:26:52

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...


  

Betrifft: Ms Forms 2.0 wird automatisch gesetzt. von: Tino
Geschrieben am: 08.01.2010 10:48:16

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


  

Betrifft: AW: Ms Forms 2.0 wird automatisch gesetzt. von: abu
Geschrieben am: 08.01.2010 11:11:07

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


  

Betrifft: AW: Ms Forms 2.0 wird automatisch gesetzt. von: Tino
Geschrieben am: 08.01.2010 11:21:12

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


  

Betrifft: AW: Ms Forms 2.0 wird automatisch gesetzt. von: abu
Geschrieben am: 08.01.2010 11:35:21

Perfekt!
Hab noch dieses geandert: .Value = TextBox45.Value
Jetzt hab ich es Idiotensicher.

1000 x Danke fuer deine Hilfe und Geduld.

Gruss abu


Beiträge aus den Excel-Beispielen zum Thema "Datum und TextBox"