Excel VBA - Datum in Textfeld standartmäßig eintragen
Ich habe eine Eingabemaske erstellt, und in dem oberen linken Textfeld soll standartmäßig gleich immer das aktuelle Datum drin stehen.
Aktuell steht bei mir
TextBoxcomandato.Value = Date drin, aber irgendwie bleibt das Feld leer...
4 Antworten
Wenn es schon beim Öffnen des Formulars im Textfeld stehen soll, muss du den Code in in den Code-bereich des Formulars stellen:
Private Sub UserForm_Activate()
TextBox1 = Date
End Sub
Activate ist ein Ereignis der Formulars, auf das man reagieren kann.
Manchmal muss man derartigen Code auch in das Ereignis Initialize einbinden. Da hilft dann nur noch probieren.
Und teilweise werden die Ereignisse nacheinander (in einer festen Reihenfolge) abgearbeitet.
Mehr siehst Du, wenn du im VBA-Editor (Alt-F11) oberhalb des Textes links in das Feld gehst und dort 'Userform" einstellst, dann hast Du rechts daneben die Auswahl der Ereignisse (des UserForms), auf die man reagiern kann.
Eingabemaske_Activate ist kein Ereignis deiner Eingabemaske. Das könntest du merken, wenn du das activate klein schreibst, es bleibt klein.
wie schon oben gesagt: du musst das Ereignis UserForm_Activate benutzen. und das geht nur im Code-Segment des Userforms.
Lies nochmals gründlich (insbesondere den letzten Absatz) und probiere!
Vielleicht ist auch nur nicht ausreichend referenziert?
Versuche es mal auf die Art:
With ActiveWorkbook.Sheets("Tabelle1")
.TextBox1 = Date
End With
Natürlich auf Deine Daten angepasst.
Du musst das Eingabefeld per VBA verlassen. So lange es den Fokus hat, erfolgt kein Eintrag.
Beispiel:
TextBox1 = Date
CommandButton1.SetFocus
Ansonsten fehlen mir weitere Angaben, um es genauer zu analysieren. Manchmal hilft auch ein MeinForm.Repaint
Wie rufst du dein Formular denn auf, in dem Moment kannst du einen Wert übergeben... ich gehe davon aus, dass das Textfeld "TexBoxcommandato" heisst, oder?
Bisher noch über F5 im VBA, später aber direkt über das Starten der Mappe, also eine autofunktion.
Dann soll natürlich auch schon das Datum drin stehen
Denn könntest du ja auch im VB-Editor unter "DieseArbeitsmappe" so etwas eintragen wie
Private Sub Workbook_Open()
UserForm1.TextBox1 = Date
UserForm1.Show
End Sub
in deinem Fall natürlich TextBox1 durch TexBoxcommandato ersetzen und UserForm1 durch den Namen deines Formulars
Danke, aber irgendwo hab ich glaube ich noch einen Denkfehler drin.
Eingabemaske heißt - eingabemaske // Das Feld mit dem Datum - datum
Hab jetzt folgenden Code eintragen
Private Sub Datum_Anzeige_Open()
eingabemaske.datum = Date
datum.Show
End Sub
Aber ich bekomme keine Anzeige....
Private Sub Datum_Anzeige_Open()
eingabemaske.datum = Date
eingabemaske.Show
End Sub
Also bei mir sieht das Ganze nun so aus:
Allerding bleibt das Feld "datum" noch immer leer...hab ich hier evtl. nen Denkfehler?
Gesamte Eingabemaske = eingabemaske // Textfeld Datum = datum