Live-Forum - Die aktuellen Beiträge
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
Formel in entsprechenden VBA-Code umsetzen
22.06.2007 22:33:35
proxima05
Hallo,
ich möchte die folgende Berechnung in den entsprechenden VBA-Code übersetzen.

Ergebnis.Value = Date(Year(Datum1.Value)+1;Month(Datum1.Value);Day(Datum1.Value))-Datum2.Value

Datum1 und Datum 2 sind allesamt Textboxen in denen über die folgenden Formatzuweisungen das entsprechende Datum abgebildet wird.
Datum1 = Format(Datum1, "DD.MM.YYYY")
Datum2 = Format(Datum2, "DD.MM.YYYY")
Ergebnis ist eine Textbox, in dem die Differenz zwischen Datum 1 (+1) und Datum 2 abgebildet werden soll. Evtl. ist das auch über DatDiff zu lösen.
Kann mir jemand sagen, die der Abschnitt ab "Date(Year(...." aussehen muss, damit die Berechnung über VBA auch funktioniert.
Besten Dank
Ralph

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in entsprechenden VBA-Code umsetzen
22.06.2007 22:44:32
Uduuh
Hallo,
das passt schon fast. Erst mal in Datum umwandeln
datum1=cdate(datum1)
datum2=cdate(datum2)
und .value lässt du weg.
Gruß aus’m Pott
Udo

AW: Formel in entsprechenden VBA-Code umsetzen
22.06.2007 22:50:16
proxima05
Hallo,
vielen Dank für die schnelle Antwort. Das heisst dann, dass die Formatzuweisungen wie folgt abzuändern sind:
Datum1=cdate(Datum1)
Datum2=cdate(Datum2)
Und der Code für die Berechnung sieht dann wie folgt aus:
Ergebnis.Value = Date(Year(Datum1)+1;Month(Datum1);Day(Datum1))-Datum2
Richtig?
Allerbesten Dank
Gruß in den Pott
Ralph

Anzeige
AW: Formel in entsprechenden VBA-Code umsetzen
22.06.2007 22:58:00
proxima05
Hallo Udo,
Wenn ich das so mache, wie ich vorstehend beschrieben habe, dann bringt er mir die Fehlermeldung "Erwartet )" und markiert "Year".
Woran liegt das und wie kann ich das ändern?
Danke für Deine Hilfe.
Gruß
Ralph

AW: Formel in entsprechenden VBA-Code umsetzen
22.06.2007 23:07:00
Uduuh
Hallo,
1. Funktion ist DateSerial
2. Funktionsargumente werden in VBA mit , und nicht mit ; getrennt.
Ergebnis= DateSerial(Year(Datum1)+1,Month(Datum1),Day(Datum1))-Datum2
Gruß aus’m Pott
Udo

AW: Formel in entsprechenden VBA-Code umsetzen
22.06.2007 23:09:56
Josef
Hallo Ralph,
ich vermute "Ergebnis" ist eine Textbox.
Dim Datum1 As Date, Datum2 As Date

Datum1 = CDate(Textbox1)
Datum2 = CDate(Textbox2)

Ergebnis.Value = Format(DateSerial(Year(Datum1) + 1, Month(Datum1), Day(Datum1)) - Datum2, "dd.mm.yyyy")

Gruß Sepp

Anzeige
@Udo und Josef ... klappt, aber falsches Ergebnis
23.06.2007 15:42:01
proxima05
Hallo ihr beiden,
erstmal besten Dank. Die Berechnung wird jetzt durchgeführt, allerdings kommt ein falsches Ergebnis heraus. Da zwei Datumwerte subtrahiert werden, sollte als Ergebnis irgendeine Zahl um die 365 Tage herauskommen. Ich habe diese Formel, die als Funktion einwandfrei rechnet, versucht in den VBA-Code umzusetzen (verschachtelte Wenn-Funktion), aber ich bekomme Werte heraus, die von der Darstellung sechs- und mehrstellige Ziffern haben.
Da es nicht so einfach erklärt ist, habe ich die Tabelle mal hochgeladen. Bitte auf den Button "Data Administration" klicken. In dem sich dann öffnenden UF geht es um die rot markierten Textboxen (beinhalten allesamt Datumwerte). Das Ergebnis ist in der rot gefüllten Textbox zu sehen. Die Formel steht im Abschnitt "Private Sub Value_Date_AfterUpdate()"; die Wenn-Formel, nach der jeweils gerechnet werden soll, steht nach dem ersten "Else".
Wäre riesig, wenn ihr euch das mal anschauen und mir einen Tipp geben könntet, wie die Formel richtige Ergebnisse liefert.
https://www.herber.de/bbs/user/43511.xls
Verbindlichsten Dank!
Gruß
Ralph

Anzeige
AW: @Udo und Josef ... klappt, aber falsches Ergebnis
23.06.2007 16:06:16
Josef
Hallo Ralph,
du versuchst schon wieder mit Texten zu rechnen! (Eine Textbox enthält immer Text, egal was darin angezeigt wird)
Du musst die Texte in Datum umwandeln, dann geht's.
If IR_Paym1.Value > Value_Date.Value And IR_Paym1.Value > Now Then
    iPeriod1.Value = CDate(IR_Paym1.Value) - CDate(Issuance.Value)
    
ElseIf IR_Paym1.Value > Value_Date.Value Then
    iPeriod1.Value = DateSerial(Year(IR_Paym1) + 1, Month(IR_Paym1), Day(IR_Paym1)) - CDate(Interest_Run)
    
Else
    iPeriod1.Value = CDate(Interest_Run.Value) - DateSerial(Year(Interest_Run) - 1, Month(Interest_Run), Day(Interest_Run))
    
End If

Gruß Sepp

Anzeige
AW: @Udo und Josef ... klappt, aber falsches Ergeb
24.06.2007 15:48:08
proxima05
Hallo Josef,
mir war schon bewusst, dass ich mit Texten rechne, aber mir war nicht klar, wie die Formel umgebaut werden muss, damit aus dem Text eine Zahl wird.
Auf jeden Fall klappt es jetzt und dafür bedanke ich mich ganz herzlich.
Noch einen schönen Sonntag.
Gruß
Ralph

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige