Datum - Differenzbetrag ausrechnen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ereza.

    Datum - Differenzbetrag ausrechnen

    Hallo...

    Wenn ich im Excel, ein späteres Datum und ein früheres Datum habe.... und ich späteres - früheres sage... dann rechnet mir Excel das ganz normal aus...

    also zb.:

    A1 = 19.08.2014
    A2 = 27.08.2014

    A3= A2-A1 --> A3 = 8

    So... wenn ich das nun in VBA umsetzen möchte... und den Wert einer Variablen "g" zuweisen möchte und schreibe:

    Visual Basic-Quellcode

    1. g = Range(Cells(2, 1), Cells(2,1)).Value - Range(Cells(1,1), Cells(1,1)).Value


    dann funktioniert das nicht.... ich bekomme als Wert 0! und zuvor... ganz am Anfang, nach der Variablendeklaration, sage ich g = 0...


    Warum rechnet der mir das nicht aus?? Hab ich da einen Denkfehler oder weise ich was falsch zu??



    Bitte um Hilfe!!

    LG Tim
    Also zu erst einmal. Du brauchst nicht Range schreiben wenn du genau nur eine Zelle benötigst.
    Dann schreib einfach :

    Cells(2,1).Value. Und am besten immer das Worksheet mit angeben welches gemeint ist;
    Worksheet(1).Cells(2,1).Value (für das erste)

    2. Solltest du auf Datentypen achten. Wenn du die Differenz von 2 Daten in Tage haben willst, dann gibts die Datediff Funktion

    DateDiff("d", Worksheet(1).Cells(2,1).Value, Worksheet(1).Cells(1,1).Value)

    Vorher kannst du ja mal prüfen, ob sich das Ganze überhaupt zu Date konvertieren lässt mit:
    Debug.Print (IsDate(Worksheet(1).Cells(2,1).Value))
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo Mono!

    Vielen Dank! Das haut fast hin :)

    Blöderweise, macht der mir als Wert -8
    Hängt das mit dem Datentyp zusammen?? ich habe Long für meine Variable deklariert...
    Weißt du warum der mir dann -8 statt 8 hinschreibt??

    Danke!


    @Mirco
    Ja danke für den Tipp, dass mach ich eigentlich eh meistens... aber in dem Fall hat sich das aus dem Code schreiben ergeben, deshalb hab ich gleich direkt gefragt ;)
    Als Datentyp für meine Variable... habe ich "Long"