Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datediff in Wort

Datediff in Wort
22.08.2006 09:07:18
egres
Hallo Leute
Ich habe etwas zusammen geknopelt und wollte es kürzen aber die Formel wird zu lang!
Kann mir jemand helfen oder hat jemand eine elgantere Lösung?
Ich meine Datei: https://www.herber.de/bbs/user/36009.xls
Gruss und Danke
Egres

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datediff in Wort
22.08.2006 15:01:54
Wilfried
=DATEDIF(A2;B2;"y") &" Jahre "&DATEDIF(A2;B2;"ym")& " Monate "& DATEDIF(A2;B2;"MD")+1&" Tage"
AW: Datediff in Wort
22.08.2006 15:41:31
Klaus
Hallo Wilfried,
das ergibt dann aber in einigen Konstellationen unschöne "1 Jahre 0 Monate 2 Tage" ...
Egres,
ich glaub das geht nur mit einer Monsterformel. Währ dir sonst auch mit VBA-Funktion geholfen?
Gruß,
Klaus M.vdT.
(Frage noch offen)
VBA oK.
22.08.2006 17:45:33
egres
Hallo Klaus M.vdT.
wäre eine willkommene Alternative!
Gruss Egres
AW: VBA oK.
23.08.2006 14:33:01
Klaus
Hallo egres,
funktioniert die

Function für dich?
Gruß,
Klaus M.vdT.
Option Explicit
Dim jahr As Integer
Dim monat As Integer
Dim Tag As Integer
Dim Wert As String

Function DateDifWort(einsdat As Date, zweidat As Date) As String
jahr = DateDiff(interval:="yyyy", date1:=einsdat, date2:=zweidat)
monat = DateDiff(interval:="m", date1:=einsdat, date2:=zweidat)
Tag = DateDiff(interval:="d", date1:=einsdat, date2:=zweidat)
Wert = ""
If jahr = 0 Then
Else
Wert = jahr
If jahr = 1 Then
Wert = Wert & " Jahr, "
Else
Wert = Wert & " Jahre, "
End If
End If
If monat = 0 Then
Else
Wert = Wert & monat
If monat = 1 Then
Wert = Wert & " Monat, "
Else
Wert = Wert & " Monate, "
End If
End If
If Tag = 0 Then
Wert = Wert & "."
Else
Wert = Wert & Tag
If Tag = 1 Then
Wert = Wert & " Tag."
Else
Wert = Wert & " Tage."
End If
End If
DateDifWort = Wert
End Function

Anzeige
AW: VBA oK. aber
24.08.2006 08:57:44
egres
Hi Klaus
Danke erstmal für deine Arbeit.
Ich konnte nicht schneller ausprobieren, ich bin in zwischenzeit Opa geworden und das ging vor! Heute abe ich wieder Zeit mich dem Ernsten der Arbeit zu widmen.
Aber es gibt da eine Problem:
1.6.2005-1.5.2007 mit deiner Function ergibt sich 2 Jahre,23Monate,700Tage (was nicht grundsätlich falsch ist).
Nur du zählst die Diff:2007-2005,die monat zwischen den zwei Daten, sowie die Tage.
Mein Anliegen wäre aber 1Jahr,11Monate,1Tag heissen(Effektive Zeitspanne)!
Kannst Du mir weiterhelfen?
Gruss
Egres
AW: VBA oK. aber
24.08.2006 11:12:37
Bernd
Hallo Egres!
Ein Vorschlag ohne VBA - siehe Beispieldatei!
https://www.herber.de/bbs/user/36090.xls
Gruß Bernd
Anzeige
AW: VBA oK. aber
24.08.2006 15:29:13
Klaus
Bernd:
genau diese Monsterformel wollte Egres ja ursprünglich vermeiden!
Egres:
Wie das VBA Datediff intern arbeitet, da bin ich überfragt, und um einen Datumsvergleich selbst zu programmieren bin ich nicht gut genug.
Darum stell ich die Frage wieder auf offen.
Gruß,
Klaus M.vdT.
P.S.: Nimm doch die Monsterformel, ist am einfachsten
Danke aber noch nicht gelöst!
24.08.2006 17:55:40
egres
Danke Klaus, ich lasse die Frage noch offen!
und Danke trozdem Bernd
Egres
AW: Zeitraum berechnen
25.08.2006 10:41:36
Gerd
Hallo Egres,
versuche es mal so. Die "Wert"-Zellen u. "Ausgabe"-Zelle musst noch anpassen.

Sub Zeitraum()
Dim Anfang As Date, Ende As Date
Dim Tage As Integer, Monate As Integer, Jahre As Integer
'# Anfangsdatum in Zelle "A1" , Endedatum in Zelle "B1" eingeben! #
Anfang = CDate(Cells(1, 1) - 1)
Ende = CDate(Cells(1, 2) + 1)
Monate = DateDiff("m", Anfang, Ende) - 1
If Monate >= 12 Then
Jahre = (Monate - (Monate Mod 12)) / 12
Monate = Monate Mod 12
End If
Tage = DateAdd("m", 1, Anfang) - Day(DateAdd("m", 1, Anfang)) - Anfang _
+ Day(Ende) - 1
'Ausgabe der errechneten Variablen in "D4"
Cells(1, 4) = Jahre & " Jahr(e) " & Monate & " Monat(e) " & Tage & " Tag(e)"
End Sub

Gruß
Gerd
Anzeige
Zeitraum berechnen. Danke aber!
25.08.2006 21:59:12
egres
Hi Gerd
Danke für deine Hilfe.
Aber dein Makro hatte ich schon als Formel!
=DATEDIF(A1;B1;"Y")&" Jahr(e), "&DATEDIF(A1;B1;"YM")&" Monat(e), "&DATEDIF(A1;B1;"MD")&" Tag(e)".
Ich suche etwas das mir die genauen Angaben (einzel- oder mehrzahl, wenn nötig nur jahr und tag oder auch monat und tag)
Gruss und schönes Wochenende!
Egres
AW: Zeitraum berechnen. Danke aber!
26.08.2006 10:03:38
Gerd
Hi Egres,
schau mal genau hin, das gleiche ist nicht immer das selbe.
Ist die Nettoergebnisse + Singular/Plural herauszuziehen bei deinem VBA_Level
ein Problem? Für mich wäre dies nur Krimskrams.
Gruß
Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige