4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe schwierigkeiten beim zeitraum berechnen.
Könnt Ihr mir bitte weiterhelfen.

Bitte nur in VBA!

Bsp. 1:
Zelle A1: 25.07.2014
Zelle A2: 01.08.2014

Zelle A3: Ausgabe: Monate: 0, Tage: 7


Bsp. 2:
Zelle A1: 01.08.2014
Zelle A2: 01.11.2014

Zelle A3: Ausgabe: Monate: 3, Tage: 0


Bsp. 3:
Zelle A1: 25.07.2014
Zelle A2: 15.12.2014

Zelle A3: Ausgabe: Monate: 4, Tage: 20

So möchte ich das haben. Wer kann so was in VbScript schreiben?

Vielen Lieben Dank und einen schönen Tag noch


Gruß, Jessi

14 Antworten

0 Punkte
Beantwortet von
ich habe schwierigkeiten beim zeitraum berechnen.

Bitte nur in VBA!


So möchte ich das haben. Wer kann so was in VbScript schreiben?

Hallo, es klingt nicht nach einer Bitte bei..., sondern eher nach "Mach fertig".
Nebenbei ist dir völlig entfallen was über den verwendeten "Axel" zu schreiben.
Liegt deine Schwierigkeit nur beim Umsetzen in VBA?
Nun das sollte kein Problem sein, erstelle doch eine funktionierende Tabelle, damit du deine Ergebnisse überprüfen kannst.
Nachher lasse doch ein Makro aufzeichnen und schon hast du zumindest einen Anfang gemacht.

Viel Erfolg!
0 Punkte
Beantwortet von
1. Wäre schön, wenn du einen namen hättest, sollte man jedenfall angeben. Das ist unhöflich!!!!

2.ich habe doch geschrieben "Könnt Ihr mir bitte weiterhelfen."
BItte ist doch kein befehl

Du siehst nur das, was du sehen willst.
Wenn du k.A. hast, bitte raushalten.
Danke und tschüsssssss

Gruss, Jessi
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Jessi,

Formel in A3:

=DATEDIF(A1;A2;"y")&" Jahr(e) "&DATEDIF(A1;A2;"ym")&" Monat(e) "&WENN(TAG(A1)<=TAG(A2);TAG(A2)-TAG(A2);TAG(A2)+TAG(DATUM(JAHR(A1);MONAT(A1)+1;0))-TAG(A1))&" Tag(e)"

Wie das in VBA gehen soll, entzieht sich meiner Kenntnis bzw. fehlt mir die Kompetenz.

Gruß

Paul1

[sub]Excel > Access > MS-Office 2003
MS Windows XP Professional SP3/32 Bit
MS Windows 7 Professional SP1/64 Bit
ECDL-Syllabus Version 4.0
FIBU/KORE/PV/KA/AB[/sub]
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Jessi,

Die Formel bringt es nicht ganz, bei einigen Datumsdifferenzen kommt nicht das richtige raus.

sorry, ich werfe somit das berühmte Handtuch.

Gruß

Paul1
0 Punkte
Beantwortet von
... Trotzdem Danke Paul1, du hast es versucht!
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Jessi,

bei dieser Formel konnte ich nach umfangreichen Tests noch keine Fehler feststellen, teste bitte selbst:

=DATEDIF(A1-1;A2;"Y")&" Jahr"&WENN(DATEDIF(A1-1;A2;"Y")<>1;"e ";"")&DATEDIF(A1-1;A2;"YM")&" Monat"&WENN(DATEDIF(A1-1;A2;"YM")<>1;"e ";"")&DATEDIF(A1;A2;"MD")&" Tag"&WENN(DATEDIF(A1;A2;"MD")<>1;"e";"")

Gruß

Paul1
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

monate
=DATEDIF(A1;A2;"m")

resttage
=DATEDIF(A1;A2;"md")

gruss nighty
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Jessi,

Auch die Formel aus AW6 liefert nicht immer verläßliche Ergebnisse, ich glaube die nachfolgende Formel ist über jeden Zweifel erhaben.

=DATEDIF(A1;A2;"y")&" Jahr"&WENN(DATEDIF(A1;A2;"y")<>1;"e";"")&", "&DATEDIF(A1;A2;"ym")& " Monat"&WENN(DATEDIF(A1;A2;"ym")<>1;"e";"")&", "&TAG(A2)-TAG(A1)+(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1;))&" Tag"&WENN(TAG(A2)-TAG(A1)+(TAG(A1)>TAG(A2))*TAG(DATUM(JAHR(A1);MONAT(A1)+1;))<>1;"e";"")

zu finden unter Excelformeln (letzter Absatz @Hajo):

http://www.excelformeln.de/formeln.html?welcher=141

Gruß

Paul1
0 Punkte
Beantwortet von
Hallo,

danke an Euch beiden.

Ich habe eine Frage an nighty.

Wenn ich in VBA schreibe, warum bekomme ich andere werte?

anfang = Range("a1").Value
ende = Range("a2").Value

Range("A4").FormulaLocal = DateDiff("m", anfang, ende) 'hier bekomme falsche werte

Range("A5").FormulaLocal = DateDiff("md", anfang, ende)
'hier bekomme ich eine Fehlermeldung

oder ganz anders in VBA?

Sorry, ich bin eine Anfängerin, aber ich möchte viel über vba lernen.

Gruß, Jessi
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Jessi,

teste mal folgenden Code.

Option Explicit

Sub monat_tag()
Dim intMonat As Integer, intTag As Integer
intMonat = Month(Range("A2")) - Month(Range("A1"))
If Day(Range("A1")) > Day(Range("A2")) Then intMonat = intMonat - 1
intTag = WorksheetFunction.EoMonth(CDate(Day(Range("A1")) & "." & Month(Range("A2")) - 1 & "." & Year(Range("A2"))), 0) _
- CDate(Day(Range("A1")) & "." & Month(Range("A2")) - 1 & "." & Year(Range("A2"))) + Day(Range("A2"))
If Day(Range("A1")) = Day(Range("A2")) Then intTag = 0
Range("A3") = "Monate: " & intMonat & " Tage: " & intTag
End Sub


Gruß
Rainer
...