Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 11:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Excel VBA Text zu Datum konvertieren?

Discussion on Excel VBA Text zu Datum konvertieren? within the .NET Languages forum part of the Coders Den category.

Closed Thread
 
Old   #1

 
merquart's Avatar
 
elite*gold: 110
The Black Market: 328/0/0
Join Date: Jul 2011
Posts: 4,587
Received Thanks: 622
Excel VBA Text zu Datum konvertieren?

Hey,
hoffe mal bin hier mehr oder weniger im richtigen Bereich.

Folgendes Problem: In Excel werden über ein Formular verschiedene Werte eingetragen, die letztlich in einer neuen Zeile landen. Unter anderem eine Frist. Ist diese Frist kleiner, als das heutige Datum, so ändert sich die Farbe der Zeile.
Nun ist das Problem, dass die Farbe der Zeile sich nur ändert, wenn das Datum der Frist per Hand eingetragen wird. Wird das Datum über das Formular eingetragen, passiert gar nichts. Die komplette Spalte, in die das Datum eingetragen wird, ist als Datum formatiert.

Im Formular landet das Fristablauf Datum in einer TextBox.


Danach werden die Einträge in die jeweiligen Zellen übernommen.
Code:
 Sheets("XXX 2016").Cells(erste_freie_Zeile, 15) = Fristablauf_Input.Text
Wie schaffe ich es nun, dass auch über das Formular das Fristablauf Datum als solches erkannt wird? Leider so gut wie gar keinen Plan davon, denke aber mal, dass es einfach als Text angesehen wird?

EDIT:
Okay, das Problem liegt offenbar an Excel selbst?

In Zelle XED5 befindet sich dasselbe Datum wie in Zelle O5. Soweit so gut, wird alles angezeigt.
In Zelle A5 ist nun eine kleine Übersicht, die einfach verschiedene Abkürzungen anzeigen soll, je nachdem was zutrifft.
Code:
=WENN(S5>0;"erl.";WENN(U5>0;"Netzt.";WENN(XED5<HEUTE();"Fristabl.";WENN(J5=1;"Mangel 1";WENN(J5=2;"Mangel 2";WENN(J5=3;"Mangel 3";" "))))))
In Zelle O5 wird das Datum angezeigt, dies wird in die ebenfalls als Datum formatierte Spalte XED übernommen. Doch auch, wenn XED5<HEUTE() ist, wird "Fristabl." nicht ausgegeben. Erst, wenn ich das Datum in O5 per Hand eingebe, dann klappt alles ohne Probleme, obwohl rein optisch keine Änderungen in O5 oder XED5 stattfinden.

Ich hoffe man versteht, was ich meine.. haha
merquart is offline  
Old 12/13/2016, 13:19   #2

 
Ravenstorm's Avatar
 
elite*gold: 0
The Black Market: 100/0/0
Join Date: Jan 2010
Posts: 13,150
Received Thanks: 3,207
Willst du prüfen ob das Datum ein valides Datum ist bzw. mit dem Datum arbeiten?

Dann:
Code:
CDate(#DateString#)
Scheinbar willst du das Event triggern... das geht in VBA nicht.. du kannst aber den eventhandler aufrufen
Dann :
Code:
Private Sub worksheet_AfterUpdate()
    //Do Something
End Sub

Private Sub button_Click()
    worksheet_AfterUpdate()
End Sub
sowas kann funktionieren...
Ansonsten habe ich nicht wirklich verstanden was du mit dem Datum möchtest.
Ravenstorm is offline  
Thanks
1 User
Old 12/13/2016, 14:01   #3

 
merquart's Avatar
 
elite*gold: 110
The Black Market: 328/0/0
Join Date: Jul 2011
Posts: 4,587
Received Thanks: 622
Quote:
Originally Posted by Nana Osaki View Post
Willst du prüfen ob das Datum ein valides Datum ist bzw. mit dem Datum arbeiten?

Dann:
Code:
CDate(#DateString#)
Scheinbar willst du das Event triggern... das geht in VBA nicht.. du kannst aber den eventhandler aufrufen
Dann :
Code:
Private Sub worksheet_AfterUpdate()
    //Do Something
End Sub

Private Sub button_Click()
    worksheet_AfterUpdate()
End Sub
sowas kann funktionieren...
Ansonsten habe ich nicht wirklich verstanden was du mit dem Datum möchtest.
Ich mache dir gegen 15 Uhr mal eine Liste.

Als Beispiel:
In Zelle A1 ist eine Wenn-Formel. Wenn B1<HEUTE() - Also wenn der Inhalt von B1 kleiner als das heutige Datum ist - soll ein "Kleiner" in A1 angezeigt werden, ansonsten "Größer".

Nun gebe ich in B1 per Hand den 12.12.2016 ein, daraufhin erscheint in Zelle A1 ein "Kleiner". Lasse ich das Datum jedoch über VBA in Zelle B1 eingeben, so erscheint in A1 gar nichts.
In B1 steht zwar das Datum, doch die Wenn-Formel auf Zelle A1 tut nichts, sofern B1 nicht per Hand eingetippt wurde.

Ich weiß nicht woran es liegen könnte.
merquart is offline  
Old 12/13/2016, 14:22   #4

 
Ravenstorm's Avatar
 
elite*gold: 0
The Black Market: 100/0/0
Join Date: Jan 2010
Posts: 13,150
Received Thanks: 3,207
Quote:
Originally Posted by YSLPlug View Post
Ich mache dir gegen 15 Uhr mal eine Liste.

Als Beispiel:
In Zelle A1 ist eine Wenn-Formel. Wenn B1<HEUTE() - Also wenn der Inhalt von B1 kleiner als das heutige Datum ist - soll ein "Kleiner" in A1 angezeigt werden, ansonsten "Größer".

Nun gebe ich in B1 per Hand den 12.12.2016 ein, daraufhin erscheint in Zelle A1 ein "Kleiner". Lasse ich das Datum jedoch über VBA in Zelle B1 eingeben, so erscheint in A1 gar nichts.
In B1 steht zwar das Datum, doch die Wenn-Formel auf Zelle A1 tut nichts, sofern B1 nicht per Hand eingetippt wurde.

Ich weiß nicht woran es liegen könnte.
Jetzt verstehe ich auch was du meinst.

Probiere doch mal die Funktionen händisch ausführen zu lassen.
Zelle A1 merkt scheinbar nicht, dass B1 verändert worden ist. Das OnChange wird nicht triggered.

Das hier könnte deine Lösung sein. Die Funktion benutze ich ebenfalls um Cell-Functions neu zu laden:
Ravenstorm is offline  
Thanks
1 User
Old 12/13/2016, 15:17   #5

 
merquart's Avatar
 
elite*gold: 110
The Black Market: 328/0/0
Join Date: Jul 2011
Posts: 4,587
Received Thanks: 622
Quote:
Originally Posted by Nana Osaki View Post
Jetzt verstehe ich auch was du meinst.

Probiere doch mal die Funktionen händisch ausführen zu lassen.
Zelle A1 merkt scheinbar nicht, dass B1 verändert worden ist. Das OnChange wird nicht triggered.

Das hier könnte deine Lösung sein. Die Funktion benutze ich ebenfalls um Cell-Functions neu zu laden:
Probiert, doch daran liegt es wohl echt nicht. Das Datum wird einfach nicht als solches erkannt. Wie gesagt, kenne mich leider auch kaum aus.
Im Anhang befindet sich ein kleines Beispiel.




Edit:
Quote:
Originally Posted by Nana Osaki View Post
Willst du prüfen ob das Datum ein valides Datum ist bzw. mit dem Datum arbeiten?

Dann:
Code:
CDate(#DateString#)

Glaube, ich bin dumm. Das hat schon gereicht.

Ging nicht:
Code:
Fristablauf_Input = CDate(Fristablauf_Input)
 Sheets("MK 2016").Cells(4, 3) = Fristablauf_Input
Ging:
Code:
Fristablauf_Input_neu = CDate(Fristablauf_Input)
 Sheets("MK 2016").Cells(4, 3) = Fristablauf_Input_neu
Ging auch:
Code:
 Sheets("MK 2016").Cells(4, 3) = CDate(Fristablauf_Input)

Anhang aus Gründen der Peinlichkeit wieder gelöscht...
merquart is offline  
Old 12/13/2016, 15:58   #6

 
Ravenstorm's Avatar
 
elite*gold: 0
The Black Market: 100/0/0
Join Date: Jan 2010
Posts: 13,150
Received Thanks: 3,207
Quote:
Originally Posted by YSLPlug View Post
Probiert, doch daran liegt es wohl echt nicht. Das Datum wird einfach nicht als solches erkannt. Wie gesagt, kenne mich leider auch kaum aus.
Im Anhang befindet sich ein kleines Beispiel.




Edit:



Glaube, ich bin dumm. Das hat schon gereicht.

Ging nicht:
Code:
Fristablauf_Input = CDate(Fristablauf_Input)
 Sheets("MK 2016").Cells(4, 3) = Fristablauf_Input
Ging:
Code:
Fristablauf_Input_neu = CDate(Fristablauf_Input)
 Sheets("MK 2016").Cells(4, 3) = Fristablauf_Input_neu
Ging auch:
Code:
 Sheets("MK 2016").Cells(4, 3) = CDate(Fristablauf_Input)

Anhang aus Gründen der Peinlichkeit wieder gelöscht...
Scheint als hätte er den anfänglichen Datentypen beibehalten und nicht parsed. Immerhin hast du es jetzt gelöst

Ist eigentlich eher verwunderlich, dass er dir da keinen Fehler geworfen hat (Weder in der Zelle noch in der Konsole)
Ravenstorm is offline  
Thanks
1 User
Old 12/13/2016, 16:41   #7
dotCom
 
Devsome's Avatar
 
elite*gold: 12400
The Black Market: 104/0/0
Join Date: Mar 2009
Posts: 15,865
Received Thanks: 4,375
#closed by request
Devsome is offline  
Thanks
1 User
Closed Thread


Similar Threads Similar Threads
Text To Columns in MS Excel
06/29/2016 - Dekaron Private Server - 2 Replies
Hello, Im working on some old server files and I would like to know is there any way to fit "Text to Columns" without having some numbers change into Dates and such. Thanks in advance! :handsdown:
Excel Auto-Ausfüllen beim Datum, sinnlose Logik??
03/08/2014 - Technical Support - 4 Replies
Moin. Hab grad bei Excel Auto-Ausfüllen verwendet in dem ich zuerst eingegeben habe: 01.01.2011 02.02.2011 Dann beide Zellen Markiert und heruntergezogen.. Was herauskam war: http://imageshack.com/a/img36/5164/40fd.png



All times are GMT +1. The time now is 11:56.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.