Schönen Freitag Abend,
ich komme bei meinem Code leider nicht weiter. Bin noch ein anfänger und schon echt am zweifeln. Ich beschreibe das Problem:
Ich muss per Code eine Funktion erstellen, welche den Zinssatz eines Sparkontos ausrechnet. Hierfür habe ich auch schon einen leeren Buchungssatz angelegt, welcher benutzt werden kann, um am Ende des Jahres die Zinsen zu berechnen.
Jetzt fehlt mir als Aufgabe noch die Zinsen zu berechnen und in die leeren Buchungssätze zu buchen.
Ich weiß leider nicht, wie ich mich auf die Leeren Buchungssätze mit der Zinsrechnung beziehen soll.
Danke im Voraus
Option Explicit
Private prv_objBuchungen() As CM_Buchung
Private prv_lngAnzBuchungen As Long
Private prv_intJahre() As Integer
Private prv_lngJahrStart() As Long
Private prv_lngAnzJahre As Long
Private Sub Class_Initialize()
prv_lngAnzBuchungen = 0
End Sub
Private Sub Class_Terminate()
Dim i As Long
For i = 1 To prv_lngAnzBuchungen
Set prv_objBuchungen(i) = Nothing
Next i
End Sub
Property Get AnzBuchungen() As Long
AnzBuchungen = prv_lngAnzBuchungen
End Property
Property Get objBuchungen(lngIndex As Long) As CM_Buchung
Set objBuchungen = prv_objBuchungen(lngIndex)
End Property
Property Get lngAnzJahre() As Long
lngAnzJahre = prv_lngAnzJahre
End Property
Property Get intJahre(lngIndex As Long)
intJahre = prv_intJahre(lngIndex)
End Property
Property Get lngJahrEnde(lngIndex As Long)
lngJahrEnde = prv_lngJahrStart(lngIndex)
End Property
Public Function add(datDatum As String, _
dblBetrag As String, _
strInfo As String, _
Optional blnCheckJahr As Boolean = True)
Dim blnNeuesJahr As Boolean
blnNeuesJahr = False
If blnCheckJahr Then
If prv_lngAnzBuchungen = 0 Then
prv_lngAnzJahre = 1
ReDim prv_intJahre(1 To prv_lngAnzJahre)
ReDim prv_lngJahrStart(1 To prv_lngAnzJahre)
prv_intJahre(prv_lngAnzJahre) = Year(datDatum)
prv_lngJahrStart(prv_lngAnzJahre) = prv_lngAnzBuchungen + 1
blnNeuesJahr = True
End If
If prv_intJahre(prv_lngAnzJahre) <> Year(datDatum) Then
prv_lngAnzJahre = prv_lngAnzJahre + 1
ReDim Preserve prv_intJahre(1 To prv_lngAnzJahre)
ReDim Preserve prv_lngJahrStart(1 To prv_lngAnzJahre)
prv_intJahre(prv_lngAnzJahre) = Year(datDatum)
Call Me.add(DateSerial(prv_intJahre(prv_lngAnzJahre - 1), 12, 31), 0, "Zinsen", False)
prv_lngJahrStart(prv_lngAnzJahre) = prv_lngAnzBuchungen + 1
blnNeuesJahr = True
End If
End If
prv_lngAnzBuchungen = prv_lngAnzBuchungen + 1
ReDim Preserve prv_objBuchungen(1 To prv_lngAnzBuchungen)
Set prv_objBuchungen(prv_lngAnzBuchungen) = New CM_Buchung
With prv_objBuchungen(prv_lngAnzBuchungen)
.datDatum = datDatum
.dblBetrag = dblBetrag
.strInfo = strInfo
If blnNeuesJahr Then
.dblKtoStand = dblBetrag
Else
.dblKtoStand = prv_objBuchungen(prv_lngAnzBuchungen - 1).dblKtoStand + dblBetrag
End If
End With
End Function
Public Function insert(lngPos As Long, _
datDatum As String, _
dblBetrag As String, _
strInfo As String)
prv_lngAnzBuchungen = prv_lngAnzBuchungen + 1
ReDim Preserve prv_objBuchungen(1 To prv_lngAnzBuchungen)
Set prv_objBuchungen(prv_lngAnzBuchungen) = New CM_Buchung
Call shiftRight(lngPos)
With prv_objBuchungen(lngPos)
.datDatum = datDatum
.dblBetrag = dblBetrag
.strInfo = strInfo
End With
End Function
Private Sub shiftRight(lngPos As Long)
Dim objBuchungen As CM_Buchung
Dim i As Long
Set objBuchungen = prv_objBuchungen(prv_lngAnzBuchungen)
For i = prv_lngAnzBuchungen To lngPos + 1 Step -1
Set prv_objBuchungen(i) = prv_objBuchungen(i - 1)
Next i
Set prv_objBuchungen(lngPos) = objBuchungen
Set objBuchungen = Nothing
End Sub
|