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

Forumthread: Datum Vergleichen - größer/kleiner

Datum Vergleichen - größer/kleiner
10.11.2008 23:25:00
Darren
Hi, wie kann ich in einer Schleife das Datum in einer Variablen mit das Datum einer Spalte richtig vergleichen?
z.B. dia as Date --- dia is dann sagen wir mal 10.10.2008
dia2 as Range --- dia2 ist eine Variable aus der ich das Datum aus Einträgen aus den Cellen herauslese (eine ganze Menge z.B. in Spalte A) wie 14.12.2008...
Das Problem ist, dass angeblich die Operatoren größer und kleiner nicht funktionierten um zu überprüfen, ob ein Datum "dia" größer ist oder kleiner von "dia2"
Meine Schleife soll sofort aussteigen, wenn das gefundene Datum "dia2" größer/älter ist als z.B. das heutige Datum in "dia".
Gibt es andere Operatoren für das Format Datum als größer kleiner damit es funktioniert wie älter und
Grüße und danke für Eure Hilfe!
Darren
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Vergleichen - größer/kleiner
11.11.2008 07:02:00
Beverly
Hi Darren,
warum sollte es nicht funktionerten

Dim dia As Date
Dim dia2 As Range
dia = Date
Set dia2 = Range("A1")  ' in A1 steht z.B. 01.10. 2008
If dia > dia2 Then MsgBox ">"


dann wird die MsgBox angezeigt.



Anzeige
AW: Ja, geht doch!
11.11.2008 07:26:15
Gerd
Hallo Darren!

Sub eins()
Dim dteDia1 As Date, rngDia2 As Range, rngZelle As Range
Dim testzähler As Integer
dteDia1 = CDate("09.09.2008")  'dteDia1 = date 'für heute
Set rngDia2 = ActiveSheet.Range("C2:C8")
For Each rngZelle In rngDia2
If rngZelle.Value > dteDia1 Then
Exit For
End If
testzähler = testzähler + 1
Next
MsgBox testzähler
MsgBox rngZelle.Value
MsgBox rngZelle.Address
End Sub


Gruß Gerd

Anzeige
AW: Ja, geht doch!
11.11.2008 09:50:00
Darren
Hi Danke für Eure Antworten!
Karin:
Mit Do until hat es nicht funktioniert, komischerweise.
Z.b springt er rein wenn das Datum in der Celle 10.10.2008 kleiner ist als z.B. 12.10.2008
Wenn er zu einer Celle kommt in der 14.10.2008 ist, srpingt er auch rein.
Nur das If mit der MsgBox funktioniert innerhalb der Do Until Funk.
Warum?
Gerd, danke, ich versuch mal Dein Beispiel! Aber warum, funktioniert mein Code nicht? Das Datum 12.10.2008 ist das Limit, alle anderen älteren Angaben sollten dann gelöscht werden, aber er erkennt das Datum 14.10.2008 nicht als größer als 12.10.2008 und macht die Do Until Schleife einfach weiter (er springt rein als wäre das Datum kleiner als 12.10.2008).
dia as Date
loeschen(1)... as Range
In dia ist fix das Datum 12.10.2008
Do Until DateValue(loeschen(1).Formula) < dia
Set loeschen(2) = Cells(zlbz, 1)
loeschen(2) = loeschen(2)
If DateValue(loeschen(1)) < dia Then MsgBox "R"
loeschen(2).Offset(0, 0).Select
If IsNumeric(loeschen(2)) Then
loeschen(1) = Cells(zlbz, 3)
loeschen(1).Select
End If
zlbz = zlbz + 1
Loop
Grüße
Darren
Anzeige
AW: Ja, geht doch!
11.11.2008 11:03:00
Beverly
Hi Darren,
meinst du das so

Sub datum()
Dim inZeile As Integer
inZeile = 1
Do
inZeile = inZeile + 1
Loop While Cells(inZeile, 1) 




Datumsvergleich
11.11.2008 11:13:00
Beverly
Hi Darren,
es gibt allerdings einen viel schnelleren Weg

Sub datum()
Dim inZeile As Integer
inZeile = Application.Match(CDbl(Date), Columns(1), 1)
MsgBox Cells(inZeile + 1, 1).Address
End Sub




Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum Vergleichen in Excel: Größer und Kleiner


Schritt-für-Schritt-Anleitung

  1. Variablen definieren: Lege die Variablen für die Datumswerte fest. Dabei kannst Du sowohl Date als auch Range verwenden.

    Dim dia As Date
    Dim dia2 As Range
  2. Wert zuweisen: Weise dia ein Datum zu, beispielsweise das aktuelle Datum:

    dia = Date
  3. Zielbereich festlegen: Setze die Range für dia2, wo die Datumswerte gespeichert sind:

    Set dia2 = Range("A1")  ' Beispiel für Zelle A1
  4. Vergleich durchführen: Nutze die Vergleichsoperatoren > und <, um die Daten zu vergleichen:

    If dia > dia2 Then MsgBox "Das Datum in A1 ist kleiner."
  5. Schleife verwenden: Um mehrere Zellen zu vergleichen, setze eine Schleife ein:

    For Each dia2 In Range("C2:C8")
        If dia2.Value > dia Then
            MsgBox "Ein Datum ist größer."
            Exit For
        End If
    Next

Häufige Fehler und Lösungen

  • Problem: Der Vergleich funktioniert nicht.

    • Lösung: Stelle sicher, dass die Daten als Datumswerte formatiert sind, nicht als Text. Du kannst CDate() verwenden, um sicherzustellen, dass der Wert als Datum interpretiert wird.
  • Problem: MsgBox zeigt falsche Ergebnisse an.

    • Lösung: Überprüfe die verwendeten Vergleichsoperatoren und stelle sicher, dass die Werte korrekt zugewiesen wurden.

Alternative Methoden

  • Bedingte Formatierung: Du kannst die bedingte Formatierung in Excel verwenden, um Zellen hervorzuheben, die größer oder kleiner als ein bestimmtes Datum sind. Wähle die Zellen aus, gehe zu "Bedingte Formatierung" und erstelle eine Regel wie =A1 > Datum.

  • Formeln nutzen: Verwende die Excel-Funktion WENN, um Datumswerte zu vergleichen. Ein Beispiel könnte so aussehen:

    =WENN(A1 > HEUTE(), "Zukunft", "Vergangenheit")

Praktische Beispiele

  1. Einfacher Vergleich:

    Sub DatumVergleich()
        Dim dteTest As Date
        dteTest = CDate("12.10.2008")
        If dteTest > Date Then
            MsgBox "Das Datum ist in der Zukunft."
        End If
    End Sub
  2. Zwei Spalten vergleichen:

    Sub ZweiSpaltenVergleichen()
        Dim rngZelle As Range
        For Each rngZelle In Range("A1:A10")
            If rngZelle.Value > rngZelle.Offset(0, 1).Value Then
                MsgBox rngZelle.Address & " ist größer als " & rngZelle.Offset(0, 1).Address
            End If
        Next rngZelle
    End Sub

Tipps für Profis

  • Verwendung von DateValue: Wenn Du sicherstellen möchtest, dass ein Datum korrekt verglichen wird, kannst Du DateValue() verwenden:

    If DateValue(dia2.Value) > dia Then
        ' tue etwas
    End If
  • Debugging: Nutze Debug.Print, um die Werte während der Schleifen auszugeben und zu überprüfen, ob die Vergleiche korrekt durchgeführt werden.


FAQ: Häufige Fragen

1. Warum funktioniert mein Datumsvergleich nicht? Stelle sicher, dass die Datumswerte korrekt formatiert sind und verwende die CDate()-Funktion, um sicherzustellen, dass sie als Datum interpretiert werden.

2. Kann ich auch mit bedingter Formatierung arbeiten? Ja, Du kannst die bedingte Formatierung nutzen, um Zellen basierend auf Datumsvergleichen automatisch hervorzuheben. Dies ist eine visuelle Alternative zum VBA-Ansatz.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige