Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Datumsproblem
#1
Hi Community,

immer wieder hakt es bei mir in Sachen VBA was die Formatierungen etc angeht.
Ich möchte gerne in eine intelligente Tabelle Eintragungen aus einer Userform machen. Leider schaffe ich es nicht, dass er die Daten in dem Format "Datum" als "DD.MM.YYYY" einträgt. Er wählt immer Standard, sodass die in der Nachbarzelle eingefügte Formel damit nicht weiterrechnen möchte (Abfrage, ob ein Datum zwischen den zwei Datumsangaben liegt). Ich habe schon versucht, die Spalte als Ganzes in dem Format "Datum" zu Formatieren - beim Hinzufügen einer neuen Zeile mit der Userform wird aber nur "Standard" eingetragen.

Ich würde gerne eine Beispieldatei hochladen, die Original enthält jedoch sehr viel Code und ist gespickt mit vielen personenbezogenen Daten. Bis ich das nachgebaut habe, vergehen Tage. Ich versuche es deshalb erstmal so und würde mich über Hilfe sehr freuen:

Folgenden Code nutze ich als Beispiel in der Userform bei der Eingabe der Daten in die Userform:

Code:
Private Sub Txt_anwesend_Beginn_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Prüft, ob im Feld ein Datum geschrieben wurde bzw. wandelt es dann um
If Txt_anwesend_Beginn.Value <> "" Then
   If IsDate(Txt_anwesend_Beginn.Text) Then
       Txt_anwesend_Beginn.Text = Format(Txt_anwesend_Beginn.Text, "DD.MM.YYYY")
   Else
       MsgBox "Bitte gültiges Datum eingeben", vbOKOnly & vbExclamation, "Ungültige Eingabe"
       Txt_anwesend_Beginn.Value = ""
       Cancel = True
   End If
End If
End Sub

Zum Eintragen in das Tabellenblatt wird dann dieser Code verwendet:

Code:
Private Sub Cmd_Uebernehmen_Click()
Dim letzte_zeile As Integer
letzte_zeile = ThisWorkbook.Sheets("Mitarbeiter").Cells(Rows.Count, 1).End(xlUp).Row + 1

'Eintragungen in die Tabelle vornehmen
Application.CellDragAndDrop = True
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 1) = Combo_Zugehoerigkeit.Value
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 2) = Txt_Name.Value
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 6) = Txt_abwesend_Beginn.Value
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 7) = Txt_abwesend_Ende.Value
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 9) = Txt_anwesend_Beginn.Value
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 10) = Txt_anwesend_Ende.Value
Application.CellDragAndDrop = False
Unload Neuer_Mitarbeiter
End Sub

Die beiden Txt_abwesend und Txt_anwesend-Werte sollen als Datum dargestellt und deklariert werden.


Gruß Tim
Antworten Top
#2
Hallo Tim,
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 6).Value = CDate(Txt_anwesend_Beginn.Value)
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • EasY
Antworten Top
#3
Hi Uwe,

ach herrje ... so einfach? Es klappt!

Danke danke :)
Antworten Top
#4
Hallo,

ohne das ganze genauer angesehen zu haben: Versuch es mal so:
Code:
ThisWorkbook.Sheets("Mitarbeiter").Cells(letzte_zeile, 6) = Cdate(Txt_abwesend_Beginn.Value)

EDIT: Uwe war schneller Wink
Gruß
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • EasY
Antworten Top


Gehe zu:


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