Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsvergleich in VBA

Forumthread: Datumsvergleich in VBA

Datumsvergleich in VBA
11.02.2019 16:10:02
Daniel
Hallo,
mein Problem ist folgendes. Ich möchte zwei Textboxen mit Datum vergleichen. Dabei soll eine MsgBox kommen und danach soll man neu eingeben. Habe das auch schon soweit programmiert aber bei mir vergleicht er immer nur den Tag und nicht das komplette Datum. Heißt 31.03.2018 größer als 12.12.2018. Hoffe ihr könnt mir da helfen.
Danke LG
Daniel
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datumsvergleich in VBA
11.02.2019 16:23:30
Daniel
Hi
in TextBoxen stehen immer Texte und bei Texten ist für den größer/kleiner-Vergleich immer das erste unterschiedliche Zeichen von links das entscheidende Wertepaar.
in deinem Fall also "3" und "1" und da ist die "3" der größere Wert.
du kannst den Fall auf 2 weisen lösen:
1. du gibst das Datum immer in der Form JJJJ-MM-TT ein, dann ist es egal ob du nach Text- oder Zahlenregel vergleichst, denn bei dieser Anordnung ist der größere Text auch immer das größere Datum
2. du wandelst die TextBoxinhalte in Datumwerte um, dh nicht:
IF Textbox1.Text > Textbox2.Text Then

sondern
IF CDate(Textbox1.Text) > CDate(Textbox2.Text) Then
Gruß Daniel
Anzeige
AW: Datumsvergleich in VBA
12.02.2019 07:51:04
Daniel
Hat funktioniert und danke für die schnelle Antwort.
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Datumsvergleich in VBA


Schritt-für-Schritt-Anleitung

Um zwei Datumswerte in VBA zu vergleichen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Textboxen erstellen: Erstelle zwei Textboxen in Deinem Userform, in denen die Benutzer die Datumswerte eingeben können.

  2. Eingabeformat festlegen: Stelle sicher, dass die Benutzer die Daten im Format JJJJ-MM-TT eingeben. Dies erleichtert den Vergleich.

  3. VBA-Code schreiben: Füge den folgenden Code in das Userform ein, um die Datumswerte zu vergleichen:

    Private Sub CommandButton1_Click()
       Dim datum1 As Date
       Dim datum2 As Date
    
       'Umwandlung der Textboxinhalte in Datumswerte
       datum1 = CDate(TextBox1.Text)
       datum2 = CDate(TextBox2.Text)
    
       'Vergleich der Daten
       If datum1 > datum2 Then
           MsgBox "Das erste Datum ist größer."
       ElseIf datum1 < datum2 Then
           MsgBox "Das zweite Datum ist größer."
       Else
           MsgBox "Beide Daten sind gleich."
       End If
    End Sub
  4. Testen: Starte das Userform und teste verschiedene Datumswerte, um sicherzustellen, dass der Vergleich korrekt funktioniert.


Häufige Fehler und Lösungen

  • Fehler: Vergleich funktioniert nur für den Tag.

    • Lösung: Stelle sicher, dass Du die Eingaben in Datumswerte umwandelst, indem Du CDate verwendest.
  • Fehler: Eingabefehler im Datumsformat.

    • Lösung: Fordere die Benutzer auf, das Datum im Format JJJJ-MM-TT einzugeben, um Missverständnisse zu vermeiden.

Alternative Methoden

Falls Du eine andere Methode zum Datumsvergleich in Excel VBA ausprobieren möchtest, kannst Du auch die folgenden Ansätze verwenden:

  1. Verwendung von Datum-Funktionen: Nutze die Datumsfunktionen von Excel, um die Daten zu vergleichen, anstatt sie direkt in VBA zu verarbeiten.
  2. Array- oder Collection-Methoden: Speichere die Daten in einer Collection oder einem Array und vergleiche die Werte, um verschiedene Datumsvergleiche in einer Schleife durchzuführen.

Praktische Beispiele

Hier sind einige praktische Beispiele für den Datumsvergleich in VBA:

  1. Vergleich zwischen zwei festen Daten:

    Sub VergleichFesterDaten()
       Dim datum1 As Date
       Dim datum2 As Date
    
       datum1 = #31/12/2022#
       datum2 = #01/01/2023#
    
       If datum1 < datum2 Then
           MsgBox "Datum 1 ist kleiner."
       End If
    End Sub
  2. Vergleich aus einer Excel-Tabelle:

    Sub VergleichAusTabelle()
       Dim datum1 As Date
       Dim datum2 As Date
    
       datum1 = Cells(1, 1).Value 'Zelle A1
       datum2 = Cells(2, 1).Value 'Zelle A2
    
       If datum1 > datum2 Then
           MsgBox "Das Datum in A1 ist größer."
       End If
    End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um ungültige Datumsformate abzufangen und den Benutzer entsprechend zu informieren.

  • Datumsformatierung: Nutze die Format-Funktion in VBA, um sicherzustellen, dass die Datumsformate einheitlich sind.

  • Verwendung von Datumsfunktionen: Nutze die integrierten Datumsfunktionen wie DateDiff, um Unterschiede zwischen zwei Daten einfach zu berechnen.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Benutzereingaben gültige Daten sind?
Du kannst die IsDate-Funktion verwenden, um zu überprüfen, ob die Eingaben gültige Datumswerte sind, bevor Du den Vergleich durchführst.

2. Was ist, wenn ich mehr als zwei Daten vergleichen möchte?
Du kannst eine Schleife verwenden, um alle Datumswerte in einem Array zu durchlaufen und sie miteinander zu vergleichen, um das größte oder kleinste Datum zu finden.

3. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten Versionen von Excel verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige