Excel VBA - Datum in Textfeld standartmäßig eintragen

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.


Sven8219 
Beitragsersteller
 10.05.2013, 14:50

Also bei mir sieht das Ganze nun so aus:

Private Sub eingabemaske_Activate()
datum = Date
End Sub

Allerding bleibt das Feld "datum" noch immer leer...hab ich hier evtl. nen Denkfehler?

Gesamte Eingabemaske = eingabemaske // Textfeld Datum = datum

0
PauleVBA  10.05.2013, 15:17
@Sven8219

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!

1
Sven8219 
Beitragsersteller
 10.05.2013, 15:26
@PauleVBA

Ach Sch...ande...Man das is mir jetzt schon peinlich :-)

Hab es hinbekommen, vielen Dank

0

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.

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

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?


Sven8219 
Beitragsersteller
 10.05.2013, 10:42

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

0
ShitzOvran  10.05.2013, 10:53
@Sven8219

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

0
Sven8219 
Beitragsersteller
 10.05.2013, 11:05
@ShitzOvran

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

0
ShitzOvran  10.05.2013, 11:15
@Sven8219
Private Sub Datum_Anzeige_Open()
eingabemaske.datum = Date
eingabemaske.Show
End Sub
0