Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum wird nicht als Datum erkannt / VBA

Forumthread: Datum wird nicht als Datum erkannt / VBA

Datum wird nicht als Datum erkannt / VBA
06.02.2023 19:29:54
MICHAEL
Hallo Community,
wieder mal benötige ich Eure Hilfe, da ich die Lösung nach Stunden der Recherche nicht finden kann :-(
Aus der Userform2 werden, durch den Button "Synchronisieren", die Inhalte der ComboBoxen in Zellen der "Tabelle1" geschrieben.
Klappt alles supi toll - nur scheinen die Werte in den Zellen der Tabelle1 nicht wirklich als Datum erkannt zu werden.
Dies ist mir aufgefallen, als ich eine farbliche Darstellung der Zellen in Bezug auf das heutige Datum realisieren wollte und dies nicht funktionierte.
Schaue ich mir die Eigenschaften er Zellen an, steht alles "brav" auf Datum... (tt.mmm.jjjj)
Nun kommts, klicke ich mit dem Cursor in die Zelle und wieder raus, funktioniert (die eine) Zelle auf einmal.. bzw. das Datum in dieser Zelle wird korrekt erkannt,...
Ich dreh durch ... :-)
Vielen Dank vorab für Eure Hilfe !
'Prüfen ob Datumeinsgabe in UF auch Datum ist (das gibt es für alle ComboBoxen)
Private Sub ComboBox_17_AfterUpdate()
If ComboBox_17 > "" And IsDate(ComboBox_17) = False Then
MsgBox "Please enter date correctly", vbCritical
ComboBox_17 = ""
End If
End Sub
Somit ist die Datumseingabe ja eigentlich immer korrekt ,...
Anschließend (Button Synchro) schreiben ich die "Datums-Werte" der ComboBoxen in die entsprechenden Zellen der Tabelle 1:
Tabelle1.Cells(myrow, 17) = Format(Me.Controls("ComboBox_17"), "dd.mmm.yyyy")
Tabelle1.Cells(myrow, 19) = Format(Me.Controls("ComboBox_19"), "dd.mmm.yyyy")
Tabelle1.Cells(myrow, 20) = Format(Me.Controls("ComboBox_20"), "dd.mmm.yyyy")
Tabelle1.Cells(myrow, 22) = Format(Me.Controls("ComboBox_22"), "dd.mmm.yyyy")
Tabelle1.Cells(myrow, 23) = Format(Me.Controls("ComboBox_23"), "dd.mmm.yyyy")
und viele weitere ....
Dies kommen dann aber anscheinend nicht als Datum an, bzw. werden erst korrekt erkannt wenn man einmal in die Zelle klickt,...
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum wird nicht als Datum erkannt / VBA
06.02.2023 19:42:18
Yal
Hallo Michael,
Format macht aus der Eingabe einen Text. Also wird der Inhalt der Combos als Text übergeben.
Zwei Möglichkeiten:
eine Aktualisierung durch das Füttern der Zelle-Eigenschaft Formula. Es erfolgt eine Auswertung der Eingabe
Tabelle1.Cells(myrow, 17).Formula = Format(Me.Controls("ComboBox_17"), "dd.mmm.yyyy")
(ungetestet)
oder die Übergabe als Datum (besser, deine Zelle ist eh passend formatiert)
Tabelle1.Cells(myrow, 17) = CDate(Me.Controls("ComboBox_17")
VG
Yal
Anzeige
AW: Datum wird nicht als Datum erkannt / VBA
06.02.2023 20:14:58
Michael
Hi Yal,
vielen Dank für Deine super schnelle Antwort und Lösung !
So : "Tabelle1.Cells(myrow, 17) = CDate(Me.Controls("ComboBox_17")" klappt es schon hervorragend, nur dass das Datum nicht mehr als tt.mmm.jjjj (12.Mrz.2023) angezeigt wird.
Ich schau mal morgen, ob das mit Deiner anderen Lösung klappt.
Vielen lieben Dank !!!
LG
Michael
Anzeige
;
Anzeige

Infobox / Tutorial

Datum wird nicht als Datum erkannt in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Prüfen der Formatierung: Stelle sicher, dass die Zellen in Excel korrekt als Datum formatiert sind. Du kannst dies tun, indem du die Zelle auswählst, mit der rechten Maustaste darauf klickst und "Zellen formatieren" wählst. Wähle dann das Datumsformat aus.

  2. VBA-Code anpassen: Wenn du Daten aus einer ComboBox in eine Zelle überträgst, achte darauf, dass die Eingabe als Datum erkannt wird. Anstelle von Format() kannst du CDate() verwenden, um sicherzustellen, dass das Datum korrekt übergeben wird:

    Tabelle1.Cells(myrow, 17) = CDate(Me.Controls("ComboBox_17").Value)
  3. Testen: Überprüfe, ob das Datum korrekt in der Zelle angezeigt wird. Sollten die Daten weiterhin nicht als Datum erkannt werden, gehe zu Schritt 4.

  4. Direkte Zuweisung: Eine alternative Möglichkeit ist, die Formel direkt zu setzen. Das kann so aussehen:

    Tabelle1.Cells(myrow, 17).Formula = "=" & Me.Controls("ComboBox_17").Value
  5. Farbliche Darstellung: Wenn du eine farbliche Darstellung in Bezug auf das heutige Datum erstellen möchtest, stelle sicher, dass die Zelle auch tatsächlich als Datum erkannt wird.


Häufige Fehler und Lösungen

  • Datum wird nicht als Datum erkannt: Wenn das Datum als Text gespeichert wird, kannst du CDate() verwenden, um das Datum richtig zu formatieren.

  • Falsches Datumsformat: Wenn das Datum nicht in dem gewünschten Format angezeigt wird, kannst du die Zelle nachträglich formatieren, indem du das Zellenformat in VBA anpasst:

    Tabelle1.Cells(myrow, 17).NumberFormat = "dd.mmm.yyyy"
  • Fehler bei der Eingabe: Stelle sicher, dass die Eingabe in der ComboBox tatsächlich ein Datum ist. Verwende IsDate() zur Überprüfung:

    If IsDate(Me.Controls("ComboBox_17").Value) Then
      ' Datum ist korrekt
    Else
      MsgBox "Bitte ein korrektes Datum eingeben."
    End If

Alternative Methoden

  • TextToColumns-Methode: Eine der Möglichkeiten, um sicherzustellen, dass das Datum richtig erkannt wird, ist die Verwendung der TextToColumns-Methode. Diese Methode kann verwendet werden, um Text in Datum zu konvertieren:

    Tabelle1.Columns("A").TextToColumns Destination:=Tabelle1.Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 4)
  • Power Query: Wenn du häufig mit Datumsformaten arbeitest, könnte Power Query eine Lösung sein, um Daten vor der Analyse in das richtige Format zu bringen.


Praktische Beispiele

  1. Eingabe eines Datums in eine Zelle:

    Tabelle1.Cells(myrow, 17) = CDate(Me.Controls("ComboBox_17").Value)
  2. Formatierung der Zelle nach der Eingabe:

    Tabelle1.Cells(myrow, 17).NumberFormat = "dd.mmm.yyyy"
  3. Überprüfung und Fehlerbehandlung:

    If Not IsDate(Me.Controls("ComboBox_17").Value) Then
       MsgBox "Bitte ein gültiges Datum eingeben!"
    End If

Tipps für Profis

  • Automatisierung: Erstelle Makros, die automatisch die Zellen nach der Eingabe formatieren, um menschliche Fehler zu vermeiden.

  • Debugging: Nutze Debug.Print innerhalb deiner VBA-Routinen, um den Status der Variablen und deren Typen zu überprüfen.

  • Verwendung von Konstanten: Definiere Konstanten für Datumsformate, um die Wartbarkeit deines Codes zu verbessern.


FAQ: Häufige Fragen

1. Was tun, wenn das Datum in Excel nicht korrekt angezeigt wird?
Überprüfe die Formatierung der Zelle. Stelle sicher, dass die Zelle als Datum formatiert ist und verwende CDate() für die Zuweisung.

2. Wie kann ich sicherstellen, dass die Eingaben in der ComboBox als Datum erkannt werden?
Verwende IsDate() zur Überprüfung der Eingabe, bevor du sie in die Zelle schreibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige