Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datumsproblem

Datumsproblem
20.11.2003 10:17:08
Stephan
Hallo Leute,

hab mal wieder 'n Excel Problem mit dem Datum. Folgendes, ich habe 2 Zeiträume, z.B. Zeitraum 1: vom 1.3. bis 31.10. und Zeitraum 2: vom 1.11. bis 28.2. Im Zeitraum 1 kostet z.B. der Mietwagen 300€ im Monat, im Zeitraum 2 kostet er 400€.
Mit welcher Formel kann ich die Kosten errechnen, wenn ich in A1 das Anfagsdatum und in B1 das Enddatum der Mietzeit eingebe? Was ist, wenn die Zeiträume sich überschneiden, z.B. Miete von 1.10. bis 1.12.?

Vielen Dank schonmal für die Hilfe

Steve

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

Betreff
Datum
Anwender
Anzeige
AW: Datumsproblem
20.11.2003 10:20:56
Holger Levetzow
die Frage 2 musst du erstmal selber beantworten: "Was ist, wenn die Zeiträume sich überschneiden?"

Holger
AW: Datumsproblem
20.11.2003 10:25:27
Stephan
Damit meine ich, dass die Miete sich dann aus den beiden Zeiträumen zusammensetzt, also für den Oktober = 300€, für den November und Dezember = je 400€.

Sorry, dass ich das so komisch ausgedrückt hab.

Steve
AW: Datumsproblem
20.11.2003 11:13:50
Nayus
Hi,
für eine einfache Formel ist der Sachverhalt m. E. zu kompliziert.
Anbei eine UDF, die Du dann in Deiner Mappe verwenden kannst.

Die benötigten Parameter stehen im Tabellenblatt und werden übergeben
=CalcRent(A1;B1;C1;A2;B2;C2;A4;B4)

To do:
Im VBA-Editor ein neues Modul anlegen und nachfolgenden Code einfügen

Public Function CalcRent(pFare1Start As Date, pFare1End As Date, pFare1 As Double, fFare2Start As Date, pFare2End As Date, pFare2 As Double, pStart As Date, pEnd As Date) As Double
Application.Volatile
Dim l_ret As Double, l_buff As Double
l_ret = 0
l_buff = 0
If Year(pStart) = Year(pEnd) Then
' innerhalb eines Jahres
For i = Month(pStart) To Month(pEnd)
l_buff = getMonthlyFare(pFare1Start, pFare1End, pFare1, pFare2Start, pFare2End, pFare2, DateSerial(Year(pStart), i, 1))
l_ret = l_ret + l_buff
Next i
ElseIf Year(pStart) = Year(pEnd) - 1 Then
' über den Jahreswechsel hinweg
For j = Month(pStart) To 12
l_buff = getMonthlyFare(pFare1Start, pFare1End, pFare1, pFare2Start, pFare2End, pFare2, DateSerial(Year(pStart), j, 1))
l_ret = l_ret + l_buff
Next j

For k = 1 To Month(pEnd)
l_buff = getMonthlyFare(pFare1Start, pFare1End, pFare1, pFare2Start, pFare2End, pFare2, DateSerial(Year(pEnd), k, 1))
l_ret = l_ret + l_buff
Next k

End If

CalcRent = l_ret

End Function



Private Function getMonthlyFare(ByVal pFare1Start As Date, ByVal pFare1End As Date, ByVal pFare1 As Double, ByVal fFare2Start As Date, ByVal pFare2End As Date, ByVal pFare2 As Double, ByVal pDate As Date) As Double
'Hilfsfunktion für CalcRent
Dim l_ret As Double
If pDate >= pFare1Start And pDate <= pFare1End Then
l_ret = pFare1
ElseIf pDate >= pFare2Start And pDate <= pFare2End Then
l_ret = pFare2
End If
getMonthlyFare = l_ret
End Function


Viel Erfolg,
Nayus
Anzeige
AW: Datumsproblem
20.11.2003 11:18:57
Stephan
Danke für die schnelle Antwort!
Leider hab ich mit VBA absolut keine Erfahrungen gemacht, weiß daher auch nicht, wo ich das alles eingeben soll und wie ich das aktiviert kriege.
Vielleicht ne kleine Schnelleinführung?

Steve
AW: Datumsproblem
20.11.2003 11:30:25
Nayus
Hi Stephan,
hier das Kochrezept:
1. Öffnen des Visual Basic Editors (Alt-F11)
2. Im VB-Editor das kleine Dreieck neben der zweiten Schaltfläche von links der Symbolleiste (Insert Module) anklicken und "Module" auswählen
Jetzt findest du ein neues Modul im Projektbaum Deiner aktuellen Arbeitsmappe.
Wird "Module1" oder ähnlich heißen.
3. Doppelklick auf den Namen des neu erstellten Moduls im Projektbaum
Auf der rechten Seite Deines Fensters sollte jetzt ein weißer, leerer Textbereich zu sehen sein
4. Kopiere den Code, den ich gepostet habe (2 Funktionen) in den rechten Bereich
5. Schließe den VB-Editor
6. Jetzt kannst Du die neue Funktion "CalcRent" wie jede EXCEL-eigene Funktion in den Tabellenblättern Deiner Arbeitsmappe verwenden. Ein Beispiel habe ich Dir in der vorherigen Antwort gegeben.

Viel Erfolg wünscht,
Nayus

P.S.: 'ne Rückmeldung wäre nett ;-)
Anzeige
AW: Datumsproblem
20.11.2003 11:49:14
Stephan
Dank vielmals Nayus, aber so ganz funktioniert das noch nicht. Habe es als Excel-eigene Funktion eingefügt, die Werte gesetzt, aber besonders bei den Übergängen zwischen den Zeiträumen und auch bei Jahreswechseln gehts noch nicht.

Steve
AW: Datumsproblem
20.11.2003 12:01:06
Nayus
Hi,
so wie es derzeit programmiert ist, werden die Monate ausgewertet.
Beispiel:
Mietdauer: 01.10.2003 bis 01.12.2003
Oktober 300
November 400
Dezember 400
Summe 1100
Ist ja auch richtig, da der Dezember schon angebrochen wurde.
Wenn Oktober und November gemeint sind muss der Zeitraum 01.10.2003 bis 30.11.2003 sein.
Ist eine andere Logik gewünscht, musst Du das Programm entsprechend anpassen.

Gruß,
Nayus
Anzeige
1000 Dank
20.11.2003 12:06:32
Stephan
Yeehaa, jetzt hauts auch bei mir hin.

Vieeeeleeeen Dank, bist ein Ass
Steve
AW: Datumsproblem
20.11.2003 13:17:24
Gert Seler
Hallo Nayus,
In der Zeile mit: Private Function get MonthlyFare
steht u.a. ByVal fFare2Start as Date
muß das nicht pFare2Start heißen ?

mfg
Gert
@Gert
20.11.2003 14:29:51
Nayus
Hallo Gert,
Du hast völlig Recht.
Es muss ..., ByVal pFare2Start as Date, ... heißen.
Danke für den Hinweis,
Nayus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige