Zinsrechner

  • Ersteller Ersteller Stefan_Sch
  • Erstellt am Erstellt am
S

Stefan_Sch

Gast
Hallo,

ich suche für meine Tagesgeldkonten einen Zinsrechner. Leider bieten die meisten Zinsrechner, nicht das, was ich gerne haben will.

1. Das Programm soll Einzahlungen und Auszahlungen nach Datum speichern können.

2. Das Programm soll die Eingabe von variablen Zinssätzen ermöglichen, z.B. vom 13.4.2013 - 05.07.2013 ein Zins von 0,8%, danach vom 05.07.2013 bis 31.12.2013 ein Zinssatz von 1% usw.

Das Programm soll anschließend die Zinsen berechnen. Einstellbar soll sein, ob Zinsen zum Monatsende oder zum Jahresende gutgeschrieben werden.

Gibt es so ein Programm oder muss man das selbst mit Excel, etc. umsetzen?
 
Die meisten Tagesgeldanbieter zeigen dir deine erreichten Zinsen direkt im Onlinebanking-Bereich an.
 
Ja, das ist mir bekannt. Ich erhalte auch eine detaillierte Aufschlüsselung in meinen Kontoauszügen.

Aber ich möchte das gerne mit einem Programm überprüfen und die Daten dort auch zentral speichern.

Das beste Programm, das ich Online bisher gefunden habe, ist das hier.

http://www.zinsen-berechnen.de/sparbuch-rechner.php

Dort kann man aber nicht die Tage angeben. Außerdem kann man die Daten nicht vernünftig speichern. Nett wäre auch eine graphische Anzeige des Guthabens und des Zinssatzes über einen Zeitram (Jahr).
 
Excel Tabelle, selber machen.
 
FreeZer_ schrieb:
Excel Tabelle, selber machen.

Tolle Antwort. Darauf bin ich schon im Eingangsbeitrag gekommen!

Ich will das aber nicht selber machen, sonst hätte ich wohl kaum nach einem Tool gefragt!
 
Zuletzt bearbeitet:
Es lässt sich aber wirklich am einfachsten mit Excel lösen, dauert wirklich keine 5 Minuten.
 
Ich glaube nicht, dass das keine 5 Minuten dauert.

Vielmehr dürfte das für jemanden, der weder Excel, noch VBA kennt Wochen dauern. Und der, der Excel und VBA gut kennt, dürfte mindestens eine halbe Stunde oder mehr damit beschäftigt sein.
 
Warum VBA?
Einfach eine Spalte mit dem Datum abtragen, eine weitere mit den Zinssatz und eine Dritte mit dem Saldo. Dann kannst du die Zinsen ausrechnen ...

5 Minuten ...
 
_killy_ schrieb:
Warum VBA?
Einfach eine Spalte mit dem Datum abtragen, eine weitere mit den Zinssatz und eine Dritte mit dem Saldo. Dann kannst du die Zinsen ausrechnen ...

5 Minuten ...

Du solltest schon den Eingangsbeitrag lesen! Hier geht es nicht um eine einfache Zinsberechnung. Es geht um variable Ein- und Auszahlungen mit variablen Zinssätzen und variablen Gutschriftdaten.

Das erfordert schon etwas mehr Arbeit.

Ich habe von thomask_7 heute eine interessante Excel-Mappe erhalten. Allerdings habe ich mir gestern selbst eine gebastelt, die mir per Knopfdruck in Excel die Zinsen bis heute und bis zum Jahresende berechnet. Und die Zahlen stimmen exakt mit denen meiner Bank überein.

Hier der Code.

PHP:
Sub CalculateTax()
    Dim interest As Double
    Dim capital As Double
    Dim days As Integer
    Dim loopCounter As Integer
    Dim numRows As Integer
    Dim start_date As Date
    Dim end_date As Date
    Dim rate As Double
    Dim currentRateRow As Integer
        
    'Select Sheet
    Sheets("Tabelle1").Select
    
    'Select Table
    Dim oSh As Worksheet
    Set oSh = ActiveSheet

    'Select the first column and count the rows
    numRows = oSh.Range("Kontodaten[Name]").Rows.Count
          
    capital = 0
    interest = 0
    loopCounter = 0
    days = 0
    currentRateRow = 1
    
    'We start with the first rate of our table
    rate = oSh.Range("Zinsänderung[Zinssatz]").Rows(currentRateRow) * 100
        
    Do
        capital = capital + Cells(loopCounter + 7, 3)
                     
        start_date = Cells(loopCounter + 7, 4)
                         
        'Check if we have reached the end of our table
        If (loopCounter = (numRows - 1)) Then
            end_date = Date
        Else
            If ((Cells(loopCounter + 8, 4)) = DateSerial(VBA.DateTime.Year(start_date), 12, 31)) Then
                end_date = Cells(loopCounter + 8, 4) - 1
            Else
                end_date = Cells(loopCounter + 8, 4)
            End If
        End If
                
                
        'This will check if there occurs any rate changes between our two dates
        Do While (RateChanged(end_date, currentRateRow) = True)
            currentRateRow = currentRateRow + 1
                    
            'Calculate until rate change date
            days = WorksheetFunction.Days360(start_date, oSh.Range("Zinsänderung[Datum]").Rows(currentRateRow))
                       
            If (days > 0) Then
                interest = interest + ((capital * rate * days) / (36000))
            End If
                    
            start_date = oSh.Range("Zinsänderung[Datum]").Rows(currentRateRow)
                    
            'Change rate factor to our new rate
            rate = oSh.Range("Zinsänderung[Zinssatz]").Rows(currentRateRow) * 100
        Loop
                    
        days = WorksheetFunction.Days360(start_date, end_date)
                    
        If (days > 0) Then
            interest = interest + ((capital * rate * days) / (36000))
        End If
             
        loopCounter = loopCounter + 1
                     
    Loop While loopCounter < numRows
 
    Range("G11").Select
    ActiveCell.FormulaR1C1 = interest
    
End Sub

Sub CalculateTaxYear()
    Dim interest As Double
    Dim capital As Double
    Dim days As Integer
    Dim loopCounter As Integer
    Dim numRows As Integer
    Dim start_date As Date
    Dim end_date As Date
    Dim rate As Double
    Dim currentRateRow As Integer
        
    'Select Sheet
    Sheets("Tabelle1").Select
    
    'Select Table
    Dim oSh As Worksheet
    Set oSh = ActiveSheet

    'Select the first column and count the rows
    numRows = oSh.Range("Kontodaten[Name]").Rows.Count
          
    capital = 0
    interest = 0
    loopCounter = 0
    days = 0
    currentRateRow = 1
    
    'We start with the first rate of our table
    rate = oSh.Range("Zinsänderung[Zinssatz]").Rows(currentRateRow) * 100

    Do
        capital = capital + Cells(loopCounter + 7, 3)
                     
        start_date = Cells(loopCounter + 7, 4)
                         
        'Check if we have reached the end of our table
        If (loopCounter = (numRows - 1)) Then
            end_date = DateSerial(VBA.DateTime.Year(start_date), 12, 31)
        Else
            If ((Cells(loopCounter + 8, 4)) = DateSerial(VBA.DateTime.Year(start_date), 12, 31)) Then
                end_date = Cells(loopCounter + 8, 4) - 1
            Else
                end_date = Cells(loopCounter + 8, 4)
            End If
        End If
                
                
        'This will check if there occurs any rate changes between our two dates
        Do While (RateChanged(end_date, currentRateRow) = True)
            currentRateRow = currentRateRow + 1
                    
            'Calculate until rate change date
            days = WorksheetFunction.Days360(start_date, oSh.Range("Zinsänderung[Datum]").Rows(currentRateRow))
                       
            If (days > 0) Then
                interest = interest + ((capital * rate * days) / (36000))
            End If
                    
            start_date = oSh.Range("Zinsänderung[Datum]").Rows(currentRateRow)
                    
            'Change rate factor to our new rate
            rate = oSh.Range("Zinsänderung[Zinssatz]").Rows(currentRateRow) * 100
        Loop
                    
        days = WorksheetFunction.Days360(start_date, end_date)
                    
        If (days > 0) Then
            interest = interest + ((capital * rate * days) / (36000))
        End If
              
        loopCounter = loopCounter + 1
                     
    Loop While loopCounter < numRows
 
    Range("G12").Select
    ActiveCell.FormulaR1C1 = interest
    
End Sub

'Check if date is greater than the next rate upgrade date
Function RateChanged(endOfDate As Date, rowNumber As Integer) As Boolean
    
    Dim tempDate As Date
    
    'Select Table
    Dim oSz As Worksheet
    Set oSz = ActiveSheet
    
    If ((rowNumber + 1) > (oSz.Range("Zinsänderung[Datum]").Rows.Count)) Then
        RateChanged = False
    Else
        tempDate = oSz.Range("Zinsänderung[Datum]").Rows(rowNumber + 1)
    
        If (endOfDate < tempDate) Then
            RateChanged = False
        Else
            RateChanged = True
            'MsgBox "Rate Changed"
        End If
    End If

End Function
 
Also aus meiner Sicht immer noch 5 Minunten (mit der Spaltenvariante) ... egal.

Ruf doch mal bei einer Verbraucherzentrale an, die könnten solche Programme kennen / haben wg. Rechtsstreitigkeiten mit Banken.

ok?
 
_killy_ schrieb:
Also aus meiner Sicht immer noch 5 Minunten (mit der Spaltenvariante) ... egal.

Wenn du das in 5 Minuten hinbekommst (woran ich jetzt einfach mal stark zweifle), dann ist das super. Ich habe ca. 1 Stunde gebraucht, bis alles so war, wie ich das haben wollte.

_killy_ schrieb:
Ruf doch mal bei einer Verbraucherzentrale an, die könnten solche Programme kennen / haben wg. Rechtsstreitigkeiten mit Banken.

ok?

Ich rufe nirgends an, weil ich mir das jetzt selbst zusammengebaut habe.

Ok?
 
Zuletzt bearbeitet:
@stefan, wenn du tagtäglich sowas machst ist es für denjenigen in 5min gemacht.
 
VBA geht natürlich auch, wenn man gerne einfache Rechnungen möglichst kompliziert realisieren will (ist analog zu Pivot-Tabellen, die in 80% der Fälle unnötig sind. Aber es sieht halt nett aus).

Die Thematik hört sich vielleicht kompliziert an, aber mehr als Dreisatz mit Variablen ist nicht dahinter. Das lässt sich für Durchschnittsanwender (ohne VBA, da dauerts länger) sehr einfach innerhalb weniger Minuten umsetzen. Nur weil man das selbst nicht kann/will, muss es noch lange nicht unwahr sein ;)

PS:
Ok?
 
Heretic Novalis schrieb:
Die Thematik hört sich vielleicht kompliziert an, aber mehr als Dreisatz mit Variablen ist nicht dahinter.

Das ist falsch. Weder steckt in der Berechnung ein Dreisatz, sondern die einfache Anwendung der Zinsformel für Tageszinsen, noch reicht es aus, einfach nur die Zinsformel anzuwenden. Und genau darum geht es hier. Es geht hier nicht um komplizierte Mathematik, sondern um ein Tool mit automatischer Berechnung und Ausführung!

Wie aus dem Eingangsbeitrag zu lesen ist, sollen Einträge flexibel erfolgen. Daher müssen Bedingungen geprüft und Schleifen durchlaufen werden. Und diese sind nur mit einem Makro in VBA realisierbar, wenn man nicht Schritt für Schritt Zellen editieren und bearbeiten will.

Man kann die Zinsen auch auf einem Blatt Papier schrittweise ausrechnen kann. Dazu brauche ich auch kein Tabellenkalkulationsprogramm, wie Excel. Warum setze ich dann Excel ein? Jetzt darfst du einmal ganz scharf nachdenken.

Falls du nicht darauf kommst, hilft dir vielleicht Microsoft auf die Sprünge.

Gründe für das Verwenden von VBA in Excel 2010

Microsoft Excel 2010 ist ein überaus leistungsstarkes Programm zum Bearbeiten, Analysieren und Präsentieren von Daten. Doch mitunter wünschen Sie sich trotz der zahlreichen Funktionen auf der standardmäßigen Excel-Benutzeroberfläche eine einfachere Möglichkeit, eine sich wiederholende Routineaufgabe zu erledigen oder eine Aktion auszuführen, die auf der Standardbenutzeroberfläche nicht möglich ist. Glücklicherweise bieten Office-Anwendungen wie Excel mit VBA (Visual Basic für Applikationen) eine Programmiersprache, mit der Sie diese Anwendungen erweitern können.

http://msdn.microsoft.com/de-de/library/office/ee814737(v=office.14).aspx

Insofern ist dein ironischer Hinweis auf überflüssige Pivot-Tabellen schon selten dämlich. Der Sinn und Zweck von VBA ist es nämlich spezifische Leistungsmerkmale zu erhalten, die allein mit Zellenformeln nicht bzw. nur umständlich manuell realisierbar sind. Deshalb gibt es nämlich VBA, sonst bräuchte man es nicht. :rolleyes:

Heretic Novalis schrieb:
Nur weil man das selbst nicht kann/will, muss es noch lange nicht unwahr sei

Ich kann wahrscheinlich mehr mit Excel, als du. Das habe ich oben unter Beweis gestellt.

Deine Fähigkeit beschränkt sich darauf, hier pseudoschlaue Sprüche abzulassen. Weder bist du dabei eine Hilfe für das Strangthema, noch lieferst du irgendeinen Beleg für deine absurden Behauptungen.

Oben habe ich dich schon bei der ersten Absurdität mit dem Dreisatz ertappt. Der Rest von deinem Beitrag ist ebenfalls für die Mülltonne.

Ok? :)
 
Zuletzt bearbeitet:
Zurück
Oben