Herbers Excel-Forum - das Archiv

Datum vergleichen per VBA

Bild

Betrifft: Datum vergleichen per VBA
von: Franz W.

Geschrieben am: 17.02.2005 23:34:29
Hallo Fachleute,
kapier was nicht und komm nich t auf den Fehler, hier ein paar (hoffentlich genug) Codeschnipsel:

Dim rng As Range
If rng > Date Then
MsgBox rng & " > " & Date
End if

Damit kommt z.B. 01.01.2005 > 17.02.2005

Hab's auch schon mit verschiedenen anderen Schreibweisen versucht, wie:
If CDbl(rng) > CDbl(Date) Then
ändert aber auch nix.

Wie muss ich denn das bitte schreiben?

Vielen Dank für eure Hilfe im Voraus und Grüße
Franz
Bild

Betrifft: AW: Datum vergleichen per VBA
von: K.Rola
Geschrieben am: 17.02.2005 23:41:46
Hallo,
rng hat in deinem Schnipsel keinerlei Zuordnung?
Gruß K.Rola
Bild

Betrifft: AW: Datum vergleichen per VBA
von: Franz W:

Geschrieben am: 17.02.2005 23:48:33
Hallo K.Rola,
hier ein bisschen genauer:
Private Sub aktGeb()
Dim n As Integer
Dim rng As Range
Dim strText As String
Dim blnFound As Boolean
strText = Chr(13) & "Geburtstage in den nächsten 14 Tagen:" & vbLf & vbLf & "Datum" & _
vbTab & vbTab & vbTab & "Name" & vbLf & vbLf
For Each rng In Sheets("Daten").Range("AW4:AW1500")
If IsDate(rng) Then
If rng > Range("AW3") Then
MsgBox rng & "  >  " & Date
'If DateDiff("d", Date, DateSerial(Year(Date), _
Month(rng), Day(rng)), vbMonday) < 14 Then
blnFound = True
strText = strText & Format(rng, "ddd,") & vbTab & Format(rng, "dd.  mmmm") & vbTab & _
rng.Offset(0, -45) & "  " & rng.Offset(0, -46) & "               " & vbLf
'End If
End If
End If
Next
If blnFound Then
MsgBox strText & vbLf & vbLf, 48, "       Anstehende Geburtstage"
End If
End Sub


Die Datümer in der Spalte "AW" haben das Format "TT.MM.JJJJ"

Grüße
Franz
Bild

Betrifft: AW: Datum vergleichen per VBA
von: K.Rola
Geschrieben am: 18.02.2005 00:02:17
Hallo,
If CDate(rng) > CDate([AW3])
solte eigentlich klappen.
Gruß K.Rola
Bild

Betrifft: Ja!!
von: Franz W.

Geschrieben am: 18.02.2005 00:07:25
Hallo K.Rola,
ja, das geht, vielen Dank! Und jetzt geht auch
If CDate(rng) > CDate(Date)
obwohl ich damit vorher auch probiert habe, hab mich wohl irgnedwie vertippt.....
Nochmals danke und Grüße
Franz
Bild

Betrifft: AW: Datum vergleichen per VBA
von: PeterW
Geschrieben am: 17.02.2005 23:43:08
Hallo Franz,
was soll rng denn sein? So geht es ohne Probleme:
Sub Datumsvergleich()
Dim rng As Range
For Each rng In Range("A1:A50")
If rng > Date Then
MsgBox rng & " > " & Date
End If
Next
End Sub

Gruß
Peter
Bild

Betrifft: AW: Datum vergleichen per VBA
von: Franz W.
Geschrieben am: 17.02.2005 23:49:49
Hallo Peter,
genau so hab ich's, in meiner ANtwort an K.Rola hab ich den ganzen Code gepostet.
Danke und Grüße
Franz
Bild

Betrifft: AW: Datum vergleichen per VBA
von: PeterW
Geschrieben am: 17.02.2005 23:55:12
Hallo Franz,
auf welchem Blatt steht AW3?
Gruß
Peter
Bild

Betrifft: AW: Datum vergleichen per VBA
von: Franz W.

Geschrieben am: 17.02.2005 23:59:11
Hallo Peter,
im selben Blatt "Daten" = aktives Blatt, das "Sheets("Daten")." kann im Grunde raus, ist von vorher übriggeblieben.

Grüße
Franz
 Bild
Excel-Beispiele zum Thema "Datum vergleichen per VBA"
Zellen vergleichen und markieren Tabellen vergleichen
Spalten A und B vergleichen und Doppel in C listen Werte vergleichen
Bereiche auf Übereinstimmung vergleichen Daten in jeweils einer Spalte zweier Tabellen vergleichen
Werte vergleichen und Ergebnis in Tabelle eintragen Tabellen vergleichen und Zeilen ersetzen
Tabellen vergleichen und bei Nichtübereinstimmung markieren Textdateien vergleichen und Unterschiede dokumentieren