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

Forumthread: Datum zusammensetzen & vergleichen

Datum zusammensetzen & vergleichen
20.03.2009 22:24:32
Frank
Hallo Forum
Ich komme grad irgendwie nicht weiter und hoffe, dass ihr mir mal kurz helfen könnt.
In Spalte E (z.B. E2) habe ich Daten stehen im Format TT.MM.JJ (z.B. 01.01.99)
Nun will ich über VBA diese Datum anders zusammensetzen:
Tag aus der Zelle, Monat aus der Zelle und das aktuelle Jahr (01.01.09)
Damit will ich einen 6-Monats-Turnus vergleichen.
Wenn das zusammengesetzte Datum - 6 Monate kleiner als das aktuelle Datum is, dann soll dieses Datum aus der Zelle in einer MsgBox ausgegeben werden.
Also:

Sub Datum()
Dim Datum as Date
Datum = ...hier das zusammengesetzte Datum...
If Datum 


Danke Euch für das Kopfzerbrechen :o)
Frank

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum zusammensetzen & vergleichen
20.03.2009 22:28:18
Daniel
Hi
Datum = DateSerial(Year(Date), Month(Range("E2").value), Day(Range("E2").value)
Gruß, Daniel
AW: Datum zusammensetzen & vergleichen
20.03.2009 22:41:42
Frank
Hallo Daniel
Danke für die Hilfe.
Anbei mal den Code:

Private Sub UserForm_Initialize()
Dim Datum As Date
Dim LoI As Long
Dim LoLetzte As Long
LoLetzte = Range("A65536").End(xlUp).Row
For LoI = 2 To LoLetzte
If IsDate(Cells(LoI, 5)) And Cells(LoI, 6) = "x" Then
Datum = DateSerial(Year(Date), Month(Cells(LoI, 5).Value), Day(Cells(LoI, 5).Value))
If Datum ? Then
ListBox1.AddItem Cells(LoI, 1)
End If
End If
Next
End Sub


Nun hätte ich noch ein Problem. Wie kann ich nun vergleichen, ob
das zusammengesetzte Datum zwischen 26 und 28 Wochen zurückliegt, damit diese Zeilen dann in die Listbox übernommen werden?
Ich schaff das grad nicht.
Danke noch mal :o)
Frank

Anzeige
AW: Datum zusammensetzen & vergleichen
20.03.2009 22:51:33
Ramses
Hallo
"... Ich schaff das grad nicht .. "
Nachdenken ist die erste Anwenderpflicht
If Datum (Date - 28*7) Then
-... wäre z.B. eine Variante
Grus Rainer
AW: Datum zusammensetzen & vergleichen
20.03.2009 23:34:09
Frank
Hallo Rainer
Du hast natürlich recht, aber irgendwie funktioniert das nicht?
Es werden einfach keine Daten in die Listbox eingetragen.
Anbei mal eine Beispiel-Datei.
https://www.herber.de/bbs/user/60532.xls
Wäre nett, wenn sich das noch mal jemand anschauen könnte. Ich hab nur begrenzte Kenntnisse in VBA und finde einfach den Fehler nicht :o(
Danke.
Frank
Anzeige
AW: Datum zusammensetzen & vergleichen
21.03.2009 00:24:57
Ramses
Hallo
Was soll sich da denn füllen ?
Du fragst nach Daten die zwischen 26 und 28 Wochen alt sind.
Das jüngste Beispieldatum ist über 7 Monate alt, also ausserhalb deiner Spezifikation, und steht nicht zur 1/2 jährlichen prüfung (ohne "x") an.
Selbst wenn alles korrekt wäre,... würde nichts anders angezeigt
Ausserdem musst du das Datum anders abfragen,... so funktioniert es wenn die Daten in der Tabelle stimmen !!
Private Sub UserForm_Initialize()
    Dim Datum As Date
    Dim LoI As Long
    Dim LoLetzte As Long
    LoLetzte = Range("A65536").End(xlUp).Row
    For LoI = 2 To LoLetzte
        If IsDate(Cells(LoI, 5)) And Cells(LoI, 6) = "x" Then
            If Cells(LoI, 5) < (Date - 26 * 7) And Cells(LoI, 5) > (Date - 28 * 7) Then
                ListBox1.AddItem Cells(LoI, 1)
                ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(LoI, 5) + 26 * 7
            End If
        End If
    Next LoI
End Sub

https://www.herber.de/bbs/user/60533.xls
Gruss Rainer
Anzeige
AW: Datum zusammensetzen & vergleichen
21.03.2009 02:03:27
Frank
Hi Rainer
Vielen Dank für die Hilfe. So funktioniert es jetzt :o)
Es wurde komischerweise vorher überhaupt nichts angezeigt. Selbst wenn die Daten im Zeitraum gelegen haben.
Aber egal. Jetzt funkt es ja und ich bin glücklich :o)
Nochmals vielen Dank.
Frank
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum zusammensetzen und vergleichen in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum in Excel aus Tag, Monat und Jahr zusammenzusetzen, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, um dies zu erreichen:

  1. Öffne Excel und den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf einen beliebigen Eintrag im Projektfenster, gehe auf „Einfügen“ und wähle „Modul“.
  3. Schreibe den VBA-Code: Verwende den folgenden Code, um das Datum aus der Zelle E2 zusammenzusetzen und mit dem aktuellen Datum zu vergleichen.
Sub Datum()
    Dim Datum As Date
    Dim LoI As Long
    Dim LoLetzte As Long
    Dim AktuellesDatum As Date
    AktuellesDatum = Date

    LoLetzte = Range("A65536").End(xlUp).Row
    For LoI = 2 To LoLetzte
        If IsDate(Cells(LoI, 5)) Then
            Datum = DateSerial(Year(AktuellesDatum), Month(Cells(LoI, 5).Value), Day(Cells(LoI, 5).Value))
            If (Datum - 180) < AktuellesDatum Then ' 180 Tage = 6 Monate
                MsgBox "Datum: " & Datum
            End If
        End If
    Next LoI
End Sub
  1. Führe den Code aus: Schließe den VBA-Editor und kehre zu Excel zurück. Du kannst den Code jetzt ausführen, um die Daten zu vergleichen.

Häufige Fehler und Lösungen

  • Problem: Der VBA-Code funktioniert nicht wie erwartet.

    • Lösung: Stelle sicher, dass die Daten in Spalte E im richtigen Datumformat vorliegen (TT.MM.JJ). Überprüfe auch, ob die Zellen als Datum formatiert sind.
  • Problem: Die MsgBox zeigt kein Datum an.

    • Lösung: Überprüfe den Vergleichsoperator in der If-Bedingung. Stelle sicher, dass du den richtigen Zeitraum angibst (z.B. 180 Tage für 6 Monate).

Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Excel-Formeln nutzen, um Daten zusammenzusetzen:

  1. Datum aus Tag, Monat und Jahr zusammenfügen: Verwende die Funktion DATUM().

    =DATUM(JAHR(HEUTE()), MONAT(E2), TAG(E2))
  2. Monate vergleichen: Um zu überprüfen, ob ein Datum mehr als 6 Monate zurückliegt, kannst du eine einfache Formel verwenden:

    =E2 < HEUTE() - 180

Praktische Beispiele

Ein praktisches Beispiel für das Zusammenfügen von Daten könnte so aussehen:

  • Wenn du die Zelle E2 hast mit dem Datum 01.01.99, kannst du das aktuelle Jahr verwenden, um das Datum in ein aktuelles Format zu bringen:
Datum = DateSerial(Year(Date), Month(Cells(LoI, 5).Value), Day(Cells(LoI, 5).Value))
  • Um den Vergleich mit dem aktuellen Datum durchzuführen, könntest du folgendes verwenden:
If Datum < Date - 180 Then ' 6 Monate
    ListBox1.AddItem Cells(LoI, 1)
End If

Tipps für Profis

  • Nutze die DateSerial-Funktion, wenn du sicherstellen möchtest, dass dein Datum korrekt erstellt wird, insbesondere wenn es um unterschiedliche Jahreszahlen und Formate geht.
  • Überlege, ob du auch WorksheetFunction nutzen möchtest, um Excel-Funktionen direkt in VBA zu verwenden, um den Code effizienter zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Daten in einer MsgBox anzeigen?
Du kannst die Daten in einer Variablen sammeln und sie dann alle gleichzeitig in der MsgBox anzeigen lassen.

2. Warum funktioniert der Datum-Vergleich nicht?
Stelle sicher, dass die Datumswerte korrekt formatiert und als Datum gespeichert sind. Überprüfe auch auf eventuelle Leerzeichen oder falsche Formate in den Zellen.

3. Kann ich das Datum auch ohne VBA zusammenfügen?
Ja, du kannst die DATUM()-Funktion direkt in einer Excel-Zelle verwenden, um Tag, Monat und Jahr zusammenzusetzen.

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