Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Funktion für Zinssatz
01.06.2018 18:04:50 IFinance
NotSolved

Ansicht des Beitrags:
Von:
IFinance
Datum:
01.06.2018 18:04:50
Views:
1268
Rating: Antwort:
  Ja
Thema:
VBA Funktion für Zinssatz

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Funktion für Zinssatz
01.06.2018 18:04:50 IFinance
NotSolved