Datumsvergleich

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Dksksm.

    Datumsvergleich

    Hallo!

    Ich habe da einen kleinen Knoten im Kopf.
    Ich habe ein Makro, in welchem eine Abfrage stattfindet: Wenn in einer Zelle ein Datum steht, wird es mit einem bestimmten Text ersetzt.
    Nun möchte ich noch eine Präzision einfügen mit der Prämisse "wenn Zelle Datum hat UND dieses unter 100 Tage vom aktuellen Datum entfernt liegt, dann mit bestimmten Text ersetzen.

    VB.NET-Quellcode

    1. For i = 3 To 11
    2. For z = 2 To .Columns(i).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
    3. searchdirection:=xlPrevious).Row
    4. If IsDate(.Cells(z, i)) Then .Cells(z, i) = .Cells(1, i) & "-Angebot"
    5. Next z
    6. Next i


    Ich scheitere ein bisschen an der 100-Tage-Bedingung. Hat jemand eine Idee?

    Viele Grüße!
    Hallo,
    ich denke so (hab den Code nicht getestet) in der Art!

    VB.NET-Quellcode

    1. Dim datumHeuteMinus100Tage As DateTime = DateTime.Now.AddDays(-100)
    2. If datumAusDeinerCelle >= datumHeuteMinus100Tage Then



    ​DateTime.Now.AddDays(-100)
    zur Info, dass man zum Date eben mit AddDays ändern kann +/- etc. Was Du da jetzt genau machen möchtest hab ich nicht verstanden; eben mit größer/ kleine vergleichen.
    codewars.com Rank: 4 kyu

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nogood“ ()

    Was heisst "100 Tage vom aktuellen Datum entfernt"?
    Liegt das Datum nur in der Zukunft oder nur in der Vergangenheit oder sogar beides?

    Visual Basic-Quellcode

    1. For i = 3 To 11
    2. For Z = 2 To .Columns(i).Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
    3. If IsDate(.Cells(Z, i)) Then
    4. 'If .Cells(Z, i) - Date < 100 And .Cells(Z, i) - Date >= 0 Then 'Datum lieg nur in der Zukunft
    5. If Date - .Cells(Z, i) < 100 And Date - .Cells(Z, i) >= 0 Then 'Datum lieg nur in der Vergangenheit
    6. 'If Abs(Date - .Cells(Z, i)) < 100 Then 'Datum kann in der Zukunft oder in der Vergangenheit liegen
    7. .Cells(Z, i) = .Cells(1, i) & "-Angebot"
    8. End If
    9. End If
    10. Next Z
    11. Next i
    Hallo!

    Vielen Dank für die Beiträge! Ja, ich war unpräzise - es sollte heißen: Wenn das Datum weniger als 100 Tage in der Zukunft liegt, dann...
    Der Vorschlag von HenryV hat mir die Lösung gebracht! Ich denke aber, dass auch nogoods Vorschlag geklappt hätte, nur dann eben noch mit der Abfrage der betroffenen Zellen.

    Grüße,
    Norist

    Norist schrieb:

    Ich denke aber, dass auch nogoods Vorschlag geklappt hätte
    Eher nicht. Das ist VB.Net und nicht VBA.

    Norist schrieb:

    Wenn das Datum weniger als 100 Tage in der Zukunft liegt

    Visual Basic-Quellcode

    1. If Datum < Date + 100 Then
    2. 'bzw.
    3. If Cells(z, i).Value < Date + 100 Then
    4. 'oder
    5. If DateDiff("d", Date, Cells(z, i).Value) < 100 Then
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --