Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Datumsdifferenz in Tagen
12.11.2008 17:26:00
Wolfgang
Hallo,
ich würde gerne erreichen, dass beim Öffnen der Arbeitsmappe in den Tabellenblättern "Start" und "Ergebnis" die Differenz zwischen zwei jeweiligen Daten im Format "12.11.2008" in Tagen erscheint.
Spalte E "Datum1"(älter) Spalte F "Datum2" (jünger) - Differenz in Tagen in Spalte R. - Wäre eine solche Formel in VBA denkbar? - Danke schon jetzt für die Rückmeldungen.
Herzliche Grüße
Wolfgang

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsdifferenz in Tagen
12.11.2008 17:28:00
Hajo_Zi
Hallo Wolfgang,
man muss nicht alles über VBA machen. =Enddatum - Anfangsdatum und als Zahl formatieren.

AW: Datumsdifferenz in Tagen
12.11.2008 17:52:04
Wolfgang
Hallo Hajo,
danke für Deine Rückmeldung. Momentan habe ich noch in Excel eine entsprechende Formel - bei ca. 6000 Zeilen -pro Tabelle- nimmt das aber sehr viel Speicherplatz in Anspruch, so dass ich gerade deswegen eine Möglichkeit über VBA suche. Hättest Du da evtl. einen Tipp/Hinweis? - Über die Herber-CD und in Recherche konnte ich so wirklich nichts finden oder habe da etwas übersehen.
Gruß - Wolfgang
AW: Datumsdifferenz in Tagen
13.11.2008 00:31:00
Uwe
Hi Wolfgang,
ich bin zwar auch Hajos Meinung, dass es nicht immer VBA sein muss, aber wenn es doch sein soll, dann schreibe mal diesen Code ins Modul des Tabellenblattes:

Private Sub Worksheet_Activate()
Dim L As Long
Dim Zelle As Range
For Each Zelle In Range(Cells(1, 6), Cells(Rows.Count, 6).End(xlUp))
If IsDate(Zelle.Value) = True _
And IsDate(Zelle.Offset(0, -1).Value) Then _
Zelle.Offset(0, 12).Value = Zelle.Value - Zelle.Offset(0, -1).Value
Next Zelle
End Sub


und teste ihn ausgiebig.
Gruß
Uwe
(:o)

Anzeige
AW: Datumsdifferenz in Tagen
13.11.2008 05:28:52
Wolfgang
Hallo Uwe,
recht herzlichen Dank für Deine Rückmeldung und Ausarbeitung. Der Code läuft wunderbar. Hab Dank dafür.- Vielleicht noch eine Frage, wenn anstatt die Differenz zwischen den beiden genannten Daten nun das Datum aus Spalte F (jünger) und HEUTE zu Grunde gelegt werden würde, wie müßte ich den Code da umstellen? Ich habe da irgendetwas mit CDate vor Augen, wüßte das aber nicht umzustellen. Hättest Du da vielleicht noch eine Idee? - Danke schon jetzt wieder für die Rückmeldung.
Herzliche Grüße
Wolfgang
AW: Datumsdifferenz in Tagen
13.11.2008 06:29:41
Reinhard
Hi Wolfgang,
aufrufen der Codes in "DieseArbeitsmappe" mit:

Private Sub Workbook_Open()
Call Datum1
'Call Datum2
End Sub


In das Standardmodul "Modul1":


Option Explicit
Sub Datum1()
Dim rng As Range
Set rng = Range("R1").Resize(Range("F" & Rows.Count).End(xlUp).Row, 1)
rng.Formula = "=F1-E1"
rng.Value = rng.Value
rng.NumberFormat = "General"
End Sub
Sub Datum2()
Dim rng As Range
Set rng = Range("R1").Resize(Range("F" & Rows.Count).End(xlUp).Row, 1)
rng.Formula = "=today()-E1"
rng.Value = rng.Value
rng.NumberFormat = "General"
End Sub


Gruß
Reinhard

Anzeige
AW: Datumsdifferenz in Tagen
13.11.2008 20:24:00
Wolfgang
Hallo Reinhard,
herzlichen Dank für Deine Rückmeldung und den Ausarbeitungen. Ich habe den Sub Datum2 zunächst einmal getestet. Er zeigt zum Teil das Ergebnis in einem Datumsformat an, zum anderen Teil differiert das Ergebnis zum Ergebnis mit nachfolgender Excel-Formel. Ausgehend z.B. vom Datum 08.05.2008 zeigt der Excel-Code 185 Tage an, der VBA-Code 220 Tage; Das Datum 09.05.2008 Excel= 184, VBA = 189 Tage. Ich weiß jetzt nicht, ob evtl. der Excel-Code nicht richtig läuft? - Die Abfrage mit Q2 wäre dabei in VBA überflüssig ? -Oder evtl. doch wichtig, weil hierüber die nur gefüllten Zeilen in Excel abgefragt werden. Hättest Du da evtl. noch eine Idee, was da evtl. anders gemacht werden müßte? - Übrigens meine ich festzustellen, dass Dein Code erheblich schneller läuft, als der von Uwe.
Danke schon jetzt wieder für die Rückmeldung.
Herzliche Grüße
Wolfgang
=WENN(Q2=1;TAGE360(F2;HEUTE();WAHR);0)
Anzeige
AW: Datumsdifferenz in Tagen
14.11.2008 00:11:00
Reinhard
Hallo Wolfgang,
ja, mein Code ist zigfach schneller als wenn man mit Vba viele Zellen "abklappert" und irgendwie überprüft.
datum1 und Datum2 unerscheiden sich ja nur durch die Zeile:
rng.Formula = "=today()-E1"
Und zwischen die Anführungszeichen kannst du die Formel reinschreiben die du auch in die Zelle schreiben würdest.
Besonderheiten:
aus der Formel
=If(A1="abc";B1;"")
mußt du dies machen:
rng.Formula = "=IF((A1=""abc"";B1;"""")"
Also alle Anführungszeichen verdoppeln.
Melde dich nochmal wenn du nicht klarkommst, ggfs. lade hier eine Beispielmappe hoch.
Gruß
Reinhard
Anzeige
ergänzende Frage
14.11.2008 08:13:00
Wolfgang
Hallo Reinhard,
in Ergänzung zur Frage mit der Mustermappe folgende Frage noch: könnte der Code Datum2 evtl. auch noch in der Form ergänzt werden, dass das Datum aus Spalte E "14.11.2008" in Spalte P nur noch als Jahreszahl "2008", also die letzten 4 Ziffern erscheint. Ich habe das zwar auch schon als Excel-Formel umgesetzt, allerdings schluckt das insgesamt bei 6000 Zeilen einiges an Speicherplatz, der durch Deinen jetztigen Code schon erheblich verringert werden konnte.
Gruß - Wolfgang
Noch offen o.w.T.
18.11.2008 12:43:35
Reinhard


AW: Datumsdifferenz in Tagen
14.11.2008 06:28:00
Wolfgang
Hallo Reinhard,
erneut herzlichen Dank für Deine Rückmeldung. Ich habe noch weiter versucht, kann mir die Differenz zwischen dem Code und der Excel-Formel nicht erklären bzw. bekomme das nicht in den Griff. In der richtigen Mappe würde ich dabei gerne als Ausgangsdatum das Datum in Spalte F zu Grunde legen und das Ergebnis, also die Differenz in Tagen sollte in Spalte R erscheinen. Habe ich da evtl. Deinen Code schon falsch umgestellt? - Ich habe 'mal eine Mustermappe beigefügt.- Danke schon jetzt wieder.
Herzliche Grüße - Wolfgang
https://www.herber.de/bbs/user/56762.xls
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige