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

Komplizierte Wenn-Formel nach VBA (evtl. @ Josef)

Komplizierte Wenn-Formel nach VBA (evtl. @ Josef)
25.06.2007 22:04:40
proxima05
Hallo,
ich habe eine etwas verschachtelte Wenn-Formel, die ich nach VBA übersetzen muss. Die Daten stammen alle aus Textboxen in denen Datumwerte eingetragen sind (deswegen die Umwandlung); berechnet werden soll der Inhalt einer weiteren Textbox (iPeriod1), in der das Ergebnis in Tagen steht. Mir macht vor allem der zweite Wenn-Block (fett markiert) in der Subtraktion Probleme.
Hier die Formel
*********************************************************
WENN(JAHR(Value_Date)=JAHR(Issuance_Date);Value_Date-Issuance_Date;
Value_Date-<b>WENN(DATUM(JAHR(Value_Date);MONAT(Interest_Run);TAG(Interest_Run))>Value_Date</b>;
DATUM(JAHR(Value_Date)-1;MONAT(Interest_Run);TAG(Interest_Run));DATUM(JAHR(Value_Date);MONAT(Interest_Run);TAG(Interest_Run)))))
*********************************************************
Ich habe schon mal angefangen, aber irgendwie klappt es nicht. Nachstehend mkein Code:
*********************************************************
If DateSerial(Year(Value_Date)) = DateSerial(Year(Issuance)) Then
iPeriod1.Value = CDate(Value_Date.Value) - CDate(Issuance.Value)
ElseIf
If DateSerial(Year(Value_Date), Month(Interst_Run), Day(Interest_Run) > CDate(Value_Date.Value) Then
iPeriod1.Value = CDate(Value_Date.Value) - DateSerial(Year(Value_Date) - 1, Month(Interest_Run, Day(Interest_Run)))
Else
iPeriod1.Value = CDate(Interest_Run.Value) - DateSerial(Year(Value_Date), Month(Interest_Run), Day(Interest_Run)))
*********************************************************
Kann mir da jemand helfen?
Allerbesten Dank
Ralph

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Komplizierte Wenn-Formel nach VBA (evtl. @ Josef)
26.06.2007 00:32:00
Gerd
Hallo Ralf,
als Ansatz. Wofür deine Begriffe stehen, weis ich ja nicht.

Sub test()
Dim Ergebnis As Long
'A1 = Value_Date
'A2 = Issuance_Date
'A3 = Interest_Run
If Year(Range("A1")) = Year(Range("A2")) Then
Ergebnis = CDate(Range("A1")) - CDate(Range("A2"))
Else
If DateSerial(Year(Range("A1")), Month(Range("A3")), Day(Range("A3"))) > CDate(Range("A1"))  _
Then
Ergebnis = CDate(Range("A1")) - DateSerial(Year(Range("A1")) - 1, Month(Range("A3")), Day( _
Range("A3")))
Else
Ergebnis = CDate(Range("A1")) - DateSerial(Year(Range("A1")), Month(Range("A3")), Day(Range(" _
A3")))
End If
End If
Range("A5")= Ergebnis
End Sub


Gruß Gerd

Anzeige
AW: Komplizierte Wenn-Formel nach VBA (evtl. @ Jos
26.06.2007 20:44:33
proxima05
Hallo Gerd,
ich versuche Deinen Ansatz gerade umzusetzen, bekomme aber bei der Zeile
If Year(Range("A1")) = Year(Range("A2")) Then
die Fehlermeldung, wonach die "Typen unverträglich" sind. Gibt es eine Möglichkeit, dass das Jahr eines Datums ohne den Range-Befehl ausgelesen wird (das würde mir auch an anderer Stelle weiterhelfen). Dateserial gibt ja immer ein ganzes Datum zurück.
Danke für Deine Unterstützung.
Gruß
Ralph

AW: Komplizierte Wenn-Formel nach VBA (evtl. @ Jos
26.06.2007 22:23:00
Gerd
Hallo Ralf,
ich schlage Dir zunächst einen anderen Zwischenschritt vor.
Nimm ein neues leeres Tabellenblatt, Zellen-Zahlenformat "Standard", und
schreibe in A1,A2 u. A3 (gültige u. vollständige) Datumswerte.
Teste also zunächst, ob der Codeaufbau stimmt u. richtige Ergebnisse rauskommen.
Gruß Gerd

Anzeige
AW: Komplizierte Wenn-Formel nach VBA (evtl. @ Jos
28.06.2007 19:19:00
proxima05
Hallo Gerd,
danke, dass Du Dir nochmal die Mühe gemacht hast, zu antworten.
Ich konnte das Problem jetzt lösen. Da ich in einem UF und dort in Textboxen (als Datum formatiert) unterwegs war, konnte ich das Problem mit DatePart lösen.
DatePart("yyyy", "entsprechendes_Datum")
Jetzt klappt es.
Gruß
Ralph

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige