|  
                                             vielleicht so: 
Option Explicit
Public Sub Beispiel_Test()
  
  Call Range("A1:B5").Clear
  
  With Range("A1:B1")
    .Cells(2).NumberFormat = "#,##0.00 €"
    .Value = Array("Anfangskapital:", 2000)
  End With
  With Range("A2:B2")
    .Cells(2).NumberFormat = "0.00"" %""" 'wir formatieren hier nicht 3% -> 0.03 sondern wirklich "3%"
    .Value = Array("Zinssatz:", 3)
  End With
  With Range("A3:B3")
    .Cells(2).NumberFormat = "0"" Jahre"""
    .Value = Array("Laufzeit", 2)
  End With
  
  With Range("A4:B4")
    .Cells(2).NumberFormat = "#,##0.00 €"
    .Value = Array("Ke_VBA:", Zinseszins(Range("B1"), Range("B2"), Range("B3")))
  End With
  With Range("A5:B5")
    .Cells(1).Value = "Ke_Formel:"
    .Cells(2).NumberFormat = "#,##0.00 €"
    .Cells(2).Formula2 = "=Zinseszins(B1, B2, B3)"
  End With
  
  Range("A4:B5").Font.Bold = True
  Columns("A:B").AutoFit
  
End Sub
Public Function Zinseszins(ByVal Ka, ByVal p, ByVal n) As Variant
  
  Dim Ke As Currency
  
  Ka = CCur(Ka) 'Anfangskapital [€]
  p = CSng(p)   'Zinssatz [%]       | p:=3 sind 3%
  n = CByte(n)  'Laufzeit [Jahren]
  
  If p < 0 Then
    Call Err.Raise(XlCVError.xlErrValue)
  End If
  
  Ke = Ka * (1 + p / 100) ^ n
  
  Zinseszins = Ke
  
End Function
  
Grüße 
     |