VBA Datumsformat
13.04.2016 19:20:43
Michael
leider habe ich mal wieder ein Problem was ich nicht gelöst bekomme.
Ich habe in Tabellenblatt 8 Spalte D:D den Zellen folgende Formeln vergeben (natürlich diese runter kopiert):
=WENN(B5="";"";WENN(A$1>B5;"Termin abgelaufen";WENN(A$1=B5;"Termin ist heute";WENN(B5="";""; DATEDIF($A$1;B5;"d")))))
Zelle A1 ist das aktuelle Datum
Per VBA wird die Spalte B mit dem Datum beschrieben (siehe Code unten)
Wenn das Datum in Spalte B nun älter als das heutige ist, soll der Text "Termin ist abgelaufen" angezeigt werden. Wenn das Datum gleich heute ist, soll der Text "Termin ist heute" angezeigt werden.
Das passiert aber nur , wenn ich das Datum manuell in die Spalte B eintrage. Wenn ich das per VBA Code mache, bekomme ich den Fehler #Zahl! angezeigt.
Liegt das Datum in der Zukunft werden die Resttage bis dahin korrekt angezeigt.(z.B 05 Tage).
Ich habe die Zellen so formatiert: Benutzerdefiniert: 00" Tage"
Vielen Dank schonmal für eure Mühe
Gruß Michael
Private Sub cmdHinzufügen_Click()
Dim intErsteLeereZeile As Long
'Fragt ab der Termin wirklich hinzugefügt werden soll
If MsgBox("Möchtest du den Termin wirklich hinzufügen?", vbYesNo) = vbNo Then
Unload Me
FormularStart.Show
Else
'Vergleicht wenn textTermine leer und ListBox1 leer
If Application.CountIf(Tabelle8.Columns(1), Me.txtTermine.Text) = 0 Then
'Wenn es den Namen nicht gibt, wird die letzte Zeile gesucht
intErsteLeereZeile = Tabelle8.Cells(Rows.Count, 1).End(xlUp).Row + 1
'und Fügt die eingetragenen Termin letzte Zeile Termine ein und startet das _
Formular neu
Tabelle8.Cells(intErsteLeereZeile, 1).Value = Me.txtTermine.Text
Tabelle8.Cells(intErsteLeereZeile, 2).Value = Me.txtDatum.Value
Tabelle8.Cells(intErsteLeereZeile, 3).Value = Me.txtZeit.Value
Else
'Wenn erste leere Zeile Spalte1 in Tabelle 8 und txtTermin leer dann kommt die _
Meldung
MsgBox "Bitte benenne deinen Termin"
End If
End if
ActiveWorkbook.Save
Unload Me
FormularStart.Show
End Sub