Datum nach übernahme aus UserForm in Zahl umwandeln
Guten Morgen und noch ein frohes Neues!
Ich hab da mal wieder was!
Ich habe eine Excel-Datei mit einer UserForm, über die unteranderem ein Datum in die Tabelle eingetragen wird.
Nun möchte ich das Datum in der Tabelle als Zahl angezeigt bekommen, um darauf eine Zuordnungsformel zu erstellen.
Nur wenn das Datum aus der UserForm kommt, lässt es sich nicht mehr in eine Zahl umwandel!
Gebe ich die Zahl erneut per Hand ein funzt es!
Gibts da ne Möglichkeit das Datum in der Tabelle (Saldo) "zu Aktivieren",
um dieses dann in eine Zahl umzuwandeln?
Hier noch mal die
DateiDanke schon mal im voraus
Benjae
Antwort schreiben
Antwort 1 von Hajo_Zi vom 09.01.2021, 09:46 Options
Hallo Benjae,
eine Textbox enthält das was der Name schon sagt Text. Möchtest Du was anderes Haben mußtDu eine Umwandlungsfunktion benutzen
Range("C1")=Cdate(Textbox1)
Gruß Hajo
Antwort 2 von BenjaminM vom 09.01.2021, 09:59 Options
Danke Hajo,
könntest du mir noch sagen wo ich den Range Befehl einsetzen muss damit es funzt?
Gruß Benjae
Antwort 3 von Hajo_Zi vom 09.01.2021, 11:16 Options
Hallo Benjae,
ich hatte angenommen das ist klar. Diu schreibst doch irgendwo die Textbox in die Zelle und genau da.
Gruß Hajo
Antwort 4 von BenjaminM vom 09.01.2021, 13:12 Options
Hallo Hajo,
das Funtz net bei mir!(oder ich find den Einstieg nicht)
Liegt das an Excel 97, ich weiß nicht genau an welcher Stelle?!
Gehe doch richtig in der Annahme das ich das in den VBA-Code der UserForm schreiben muss, oder?
Wenn du die Musse hättest, dir die Datei anzuschauen, und mir doch noch mal weiter zu helfen...
Danke und gruß Benjae
Antwort 5 von Hajo_Zi vom 09.01.2021, 13:17 Options
Hallo Benjamin,
ich sehe keine Datei und auch keinen Code. Da kann ich wenig helfen.
Gruß Hajo
Antwort 6 von BenjaminM vom 09.01.2021, 13:20 Options
Hallo Hajo,
in der Themen-Eröffnung ganz oben unter Datei.
Gruß Benjae
Antwort 7 von Hajo_Zi vom 09.01.2021, 13:25 Options
Hallo Benjamin,
ich welcher UserForm wird wo ein Datum eingegeben?
Ich vermute mal im OK Code muss es rein.
Gruß Hajo
Antwort 8 von malSchauen vom 09.01.2021, 14:39 Options
Hi,
@Hajo
Das Datum bekommt die TextBox1 über "UserForm_Activate" ohne Zutun des Anwenders.
@Benjae
Ändere bei den OK-Buttons der beiden Forms den Code von:
'Eintrag aus TextBox1 (Datum) in erste freie Zelle übertragen
Cells(letzte_Zeile, 1) = TextBox1
in:
Cells(letzte_Zeile, 1) = CLng(CDate(TextBox1))
CDate: Umwandlung des Textes in ein Datum
CLng: Umwandlung des Datums in eine Zahl (long)
Damit erhälst Du dann (in den als "Standard" formatierten Spalten A) statt 09.01.2009 die Zahl 39822. Ist es das, was Du wolltest?
Bye
Antwort 9 von malSchauen vom 09.01.2021, 15:01 Options
Hi,
Ups. So wolltest Du die Zahl wohl nicht sehen. Wohl doch eher als echtes Datum in der Form xx.yy.zzzz. Zumindest glaube ich Deinen Hinweis auf Pal.Saldo-Datum so zu verstehen. In diesem Sheet ist die Spalte A übrigens als "Datum" formatiert.
Wenn dem so ist, dann sollte die oben vorgeschlagene Zeile aussehen wie folgt:
Cells(letzte_Zeile, 1) = CDate(TextBox1))
Oder Du schreibst nochmal, welches Format Du nun wo genau zu sehen wünschst.
Bye
Antwort 10 von fedjo vom 09.01.2021, 15:11 Options
Hallo malSchauen ,
in den zwei UserFormen ist keine TextBox1 enthalten.
In welchen Spalten (Paletten Eingang / Ausgang) soll das Datum als Zahl eingetragen werden?
Gruß
fedjo
Antwort 11 von malSchauen vom 09.01.2021, 15:53 Options
Hi,
@fedjo
So wie ich BenjaminM / und die Datei verstehe, soll das Datum je nach UserForm einmal in Sheet Pal.Eingang und einmal in Sheet Pal.Ausgang jeweils in die erste freie Zelle der Spalte A.
Und doch gibt es in beiden Formularen jeweils eine Textbox1. Sie ist nur nicht so leicht zu entdecken. ;-) Ruf eines der Formulare mal im VBA-Editor auf und schau dann mal im Eigenschaftenfenster nach. (Im DropDownFeld des Eigenschaftenfensters einfach die Textbox1 anwählen, dann wird die Textbox auf dem Form markiert.)
Sie ist allerdings mit .BackStyle=fmBackStyleTransparent und .SpecialEffect=fmSpecialEffectFlat formatiert. Dazu ist in der Text-Eigenschaft beim Aufruf kein Text eingetragen. Somit ist die Textbox1 im Ablauf auf dem Formular nicht zu sehen. Es wird zwar während des Ablaufs das Datum in die Textbox geschrieben, was aber unbemerkt vom User bleibt, da die Anzeige des Formulars nicht aktualisiert wird (.Repaint)
Bye
Antwort 12 von BenjaminM vom 12.01.2021, 10:47 Options
Richtig analysiert malSchauen,
jedoch ist die TextBox1 in der/denn ausgeführten UserForm(en) zu sehen!
Oben links.
Im Editor ist sie natürlich "ausgeblendet" wie schon gesagt
.BackStyle=fmBackStyleTransparent und .SpecialEffect=fmSpecialEffectFlat.
da sie erst gefüllt wird wenn die UserForm gestartet wird.
--------
Nun hab ich aber noch ein Frage/umsetzungs Problem...
Ich möchte gerne ein Saldo (eine art Kontoauszug) aus diesem Paletten-Konto erstellen.
Dazu dachte ich mir das ich das Datum in eine Zahl umwandle und anhand der Zahlen die Monate zuordne und diese dann jeweils in einem neuen Tabellenblatt( Jan.;Feb.;März;April;Mai usw.)übertrage.
Z.B.
BlattDez.08 Zelle A2
=wenn(und(Pal.Ausgang!L3>39783;Pal.Ausgang!L3<39813)
;=Pal.Ausgang!A3:Pal.Ausgang!K3)
"Zahlenwert für 01.12.08-31.12.08",
aber so funzt die Formel nicht, und ich habe gerade keinen Plan wie ich das umsetzen soll!
Gibt es eine Möglichkeit , anhand der DatumsZahl diese einem Tabellenblatt zuzuordnen, und bei übereinstimmung der Werte eine ganze Zeile aus einem TabellenBlatt in ein neues(z.B. Montasblatt)zu kopieren?
Ich hoffe es ist zu Verstehen.
Hier noch mal die
Datei