Schwieriges Thema zum Datum
#1
Exclamation 
Hallo liebe Com,

Ich bin am verzweifeln und hoffe ich kann euch mein Problem trotz Handytastertur erklären und ihr könnt mir helfen. 

Ich habe Excel 2010

Zum Problem:

Ich habe eine Userform in der viele Daten aus der Tabelle1 ( Personal ) ausgelesen werden. 
Name vorname Bereich usw. 
In Spalte J7:J300 steht je ein Datum. Diese Daten laufen ab und geben mir an wie lange eine Untersuchung noch gültig ist. Zum berechnen habe ich die Formel die in Zelle J3 steht:

=(ZÄHLENWENN(J7:J300;">"&HEUTE()))

Somit kann ich sehen wie viele Untersuchungen noch gültig sind. Soweit so gut. 


Nun zum eigentlichen Problem :(
Wenn ich in der Userform 04/2019 eingeben und auf speichern drücke steht Apr 2019 in der TextBox9 ( textbox für Zelle J7:J300 ) und in der Zelle und der Wert der gültigen Untersuchungen wird richtig berechnet. Doch öffne ich die Userform erneut steht 01.04.2019 in dee Textbox9 und drücke ich dann auf speichern ( CommandButton3 ) steht in der Zelle J.. auch wieder 01.04.2019 aber die berechnung geht nicht mehr.
Top
#2
Hi,

(28.04.2017, 11:57)Kaywarri124 schrieb: Doch öffne ich die Userform erneut steht 01.04.2019 in dee Textbox9 und drücke ich dann auf speichern ( CommandButton3 ) steht in der Zelle J.. auch wieder 01.04.2019 aber die berechnung geht nicht mehr.

eine Textbox enthält einen Text und wenn der in eine Zelle geschrieben wird, dann steht dort ein Text und kein Datum (= Zahl)!

Du kannst den Textbox-Inhalt so in die Zelle schreiben:
Range("J3") = CDate(Textbox9.Value)

dann müßte es ein Datum bleiben.
Top
#3
Danke für dir Antwort. Nur geht es nicht. Das einzige was jetzt anders ist. Ist das ich nur so das Datum eingeben kann

01.04.19
Anders kommt Laufzeitfehler 13

Das steht jetzt für meine Textbox9 im Code. Soweit geht auch alles nur das nach dem wieder Öffnen der Userform1 das Datum sich von Apr 2019 in 01.04.2019 umwandelt und das nicht mehr als Datum erkannt wird


Code:
Private Sub TextBox9_AfterUpdate() 
      
If IsDate(Me.TextBox9.Value) Then 
   ActiveSheet.Cells(ActiveCell.Row, 4).Value = CDate(Me.TextBox9.Value) 
   ActiveSheet.Cells(ActiveCell.Row, 4).NumberFormat = "MM YYYY" 
End If 

End Sub 

Private Sub TextBox9_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
 If IsDate(TextBox9.Text) Then 
     TextBox9.Text = Format(TextBox9.Text, "MMM YYYY") 
 Else 
     TextBox9.Text = "Kein gültiges Datum!" 
     Cancel = True 
 End If 
 End Sub 

Private Sub TextBox9_Change() 
  
End Sub
Top
#4
Ich dachte ich frage mal nochmal ob wer einen Ansatz hat.
Top
#5
Hallo return,

wenn Du Dir die Eingabe des Slash-Zeichens ersparen und nur sechs Zahlen erfassen möchtest, dann geht auch:

Code:
Private Sub TextBox9_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
   If Len(Me.TextBox9.Value) = 6 And IsNumeric(Me.TextBox9.Value) Then
       Me.TextBox9.Value = (CDate("'01." & Left(Me.TextBox9.Value, 2) & "." & Right(Me.TextBox9.Value, 4)))
        Me.TextBox9.Value = Format(Me.TextBox9.Value, "MMM YYYY")
   Else
       Me.TextBox9.Value = vbNullString
       'oder, statt dem NullString kannst Du auch die Aktualisierung abbrechen:
       'Cancel = True
   End If
End Sub



Gruß Carsten
Top
#6
Danke für ddn Tipp nur geht es kir darum das die TextBoxen nach jedem neustarten der UserForm1 vom Format MMM YYYY auf DD.MM.YYYY springen.
Top
#7
Moin!
Textboxes haben IMMER das Textformat, könnte am Namen liegen …
Vielleicht solltest Du mal die Datei hochladen.
Werkelt da ein _Initialize, welches Textboxes füllt?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#8
Hallo return,

naja, dann frage ich mich, warum Du 'AfterUpdate' und 'Exit'-Ereignisse postest.

Dann lade doch bitte ein Minibeispiel hoch, dann kann man nachschauen und korrigieren.
Man kann doch nicht wissen, wie Du die Controls genau lädst ...


Gruß Carsten
Top
#9
Hi,

(02.05.2017, 12:45)RPP63 schrieb: Textboxes haben IMMER das Textformat, könnte am Namen liegen …

wie ich ja auch schon hier geschrieben habe:
Rabe schrieb:eine Textbox enthält einen Text und wenn der in eine Zelle geschrieben wird, dann steht dort ein Text und kein Datum (= Zahl)!
Top
#10
Wohl wahr, Ralf, sorry!
Dann sehe es als Bestätigung Deiner Aussage.  :32:

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste