Excel VBA/Datum Problem
11.02.2020 13:47:39
Heinz
ich sitze für die Arbeit an einer Dynamischen Tabelle wo Mitarbeiter Ihre Stunden aufschreiben.
Dies erfolg über eine VBA-Eingabemaske (Userform) mit Datum,Tätigkeit und Stunden etc.
Wählt man nun das Datum mit Hilfe der Combobox aus und überträgt die eingegebenen Werte in ein neues Tabellenblatt
wird das Datum nicht richtig erkannt.
- Der Datepicker funktioniert im Firmennetzwerk nicht mehr ich muss es also anders lösen.
Momentan habe ich es wie folgt:
Combobox um Datum auszuwählen:
Private Sub BoxDatum_Click()
BoxDatum.Value = CDate(BoxDatum.Value)
End Sub
Private Sub Button_Take_Click()
'Eingabe der Schaltflaechen in die Arbeitsmappe übernehmen'
'wenn das Datumsfeld leer ist wird "Kein Datum" in die Tabelle übernommen
If BoxDatum.Value = "" Then BoxDatum.Value = "Kein Datum"
Dim last As Integer
'Im Folgenden wird festgelegt, wo die eingegebenen Daten abgelegt werden sollen'
last = Tabelle3.Cells(Rows.Count, 1).End(xlUp).Row + 1
Tabelle3.Cells(last, 1).Value = Instandhaltungsaufschreibung.BoxDatum.Value
Tabelle3.Cells(last, 2).Value = Instandhaltungsaufschreibung.Box1.Value
Tabelle3.Cells(last, 4).Value = Instandhaltungsaufschreibung.Box5.Value
Tabelle3.Cells(last, 6).Value = Instandhaltungsaufschreibung.Text_Dauer.Value
Tabelle3.Cells(last, 10).Value = Instandhaltungsaufschreibung.ListBox1.Value
Tabelle3.Cells(last, 11).Value = Instandhaltungsaufschreibung.ListBox2.Value
Tabelle3.Cells(last, 12).Value = Instandhaltungsaufschreibung.Text_Frei.Value
'Einordnen der Kategorie, abh. davon welcher Reiter in der Eingabemaske ausgewählt wird'
If TabStrip1.Value = 0 Then Tabelle3.Cells(last, 9) = "Mechanik"
If TabStrip1.Value = 1 Then Tabelle3.Cells(last, 9) = "Elektro"
If TabStrip1.Value = 2 Then Tabelle3.Cells(last, 9) = "Allgemeines/Büro"
If TabStrip1.Value = 3 Then Tabelle3.Cells(last, 9) = "Gebäude"
'Check Box-Abfragen: Wenn das Kontrollkästchen aktiviert ist, dann steht in der Tabelle "Ja", _
_
ansonsten "Nein" '
If Check1.Value = True Then Tabelle3.Cells(last, 5) = "Ja"
If Check1.Value = False Then Tabelle3.Cells(last, 5) = "Nein"
If Check2.Value = True Then Tabelle3.Cells(last, 8) = "Ja"
If Check2.Value = False Then Tabelle3.Cells(last, 8) = "Nein"
Unload Instandhaltungsaufschreibung
End Sub
Private Sub UserForm_Initialize()
'Für die beiden Boxen am Anfang werden die Daten eingelesen'
BoxDatum = Date
Box1.RowSource = "Maschinen!A2:A75"
BoxDatum.RowSource = "Daten_Namen_Kategorie_Datum!E2:E368"
Box5.RowSource = "Daten_Namen_Kategorie_Datum!A2:A9"
'Checkbox für Abfrage, ob mit mehreren gearbeitet wurde'
Check1.Value = False
Check2.Value = False
'Im Folgenden werden die ListBoxen 1 und 2 beim Ausführen der UserForm mit Daten aus dem _
Tabellenblatt Kategorien gefüllt'
'Der Bereich der Boxen kann durch Bearbeitung der Zeilennummer erweitert werden. Wenn der _
Nutzer die Kategorien erweitern möchte, muss er nur die Bezeichnung eintragen'
'ListBox1'
ListBox1.RowSource = "Kategorien!A2:A23"
ListBox2.RowSource = "Kategorien!E2:E23"
End Sub
Über ein weiteres Tabellenblatt (Daten_Namen_Kategorie_Datum) werden die verschiedenen Daten eingespeist, diese sind alle richtig formatiert.
Ich habe schon gefühlt alles ausprobiert, jedoch muss man immer erst mit Doppelklick das eingetragene datum anwählen und mit ENTER bestätigen, sodass es von Excel rechtsbündig als Datum angezeigt wird.
Wichtig ist dies, weil wir mit einem Spaltenfilter auf die verschiedenen Monate zugreifen müssen. Problem ist eben die dynamische Tabelle, nach jedem Eintrag wird eine neue Zeile erstellt. Ich habe es auch schon mit dem Multiplizieren von Zelle bzw Spalte mit 1 versucht aber sobald man alles formatiert hat und einen neuen Eintrag tätigt ist das neue Datum wieder nicht richtig formatiert.
Der wirklich einzige Weg den ich momentan habe ist der Doppelklick...und das ist ziemlich umständlich.
Ich bin um jede Hilfe sehr dankbar! Falls irgendwas zu kompliziert erklärt ist oder unverständlich bitte bescheid sagen ich werde mich darum bemühen, dass mein Problem leicht verständlich ist.
Gruß H.S.