Hallo zusammen,
ich habe die folgende Funktion, bei der soweit alles klappt. Wenn ich jedoch die Variable diskontsatz ändere (fester Wert im Tabellenblatt), wird nur "#Wert!" ausgegeben. Wenn ich die jeweilige Zeile mit der Funktion dann jeweils einzeln ansteuere, klappt die Aktualisierung.
Geht das auch automatisch bzw. was mache ich falsch?
Vielen Dank und freundliche Grüße.
Flieger
Public diskontsatz As Double
Function BuffettFairValue(diskontsatz As Double) As Double
Dim letzterGewinn As Double
Dim wachstum1_5 As Double
Dim wachstum6_10 As Double
Dim terminalwachstum As Double
Dim ausstehendeaktien As Double
Dim fairValue As Double
Dim zeile As Integer
fairValue = 0
' Diskontsatz
diskontsatz = diskontsatz / 100
' Aktuelle Zeilennummer basierend auf der aktiven Zelle
zeile = ActiveCell.Row
' Eingabewerte aus der aktuellen Zeile
letzterGewinn = Cells(zeile, "E").Value
wachstum1_5 = Cells(zeile, "L").Value
wachstum1_5 = wachstum1_5 / 100
wachstum6_10 = Cells(zeile, "M").Value
wachstum6_10 = wachstum6_10 / 100
terminalwachstum = Cells(zeile, "M").Value
terminalwachstum = terminalwachstum / 100
ausstehendeaktien = Cells(zeile, "G").Value
' Berechnung des Fair Value
fairValue = letzterGewinn / (1 + diskontsatz)
' Berechnung des Gewinnwachstums für die nächsten 5 Jahre
For i = 1 To 5
abzinsung = (1 + diskontsatz) ^ i
fairValue = fairValue + (letzterGewinn * (1 + wachstum1_5)) / abzinsung
If i = 1 Then
Endgewinn = letzterGewinn * (1 + wachstum1_5)
Else
Endgewinn = Endgewinn * (1 + wachstum1_5)
End If
Next i
' Berechnung des Gewinnwachstums für die nächsten 5 Jahre
For i = 5 To 10
abzinsung = (1 + diskontsatz) ^ i
fairValue = fairValue + (letzterGewinn * (1 + wachstum6_10)) / abzinsung
Endgewinn = Endgewinn * (1 + wachstum6_10)
Next i
' Berechnung des Restwerts nach 10 Jahren
Restwert = (Endgewinn * (1 + terminalwachstum)) / 0.05 ' Kapitalisierungssatz von 5% angenommen
Restwert_akt = Restwert * 1 / abzinsung
' Marktwert der Firma
Marktwert = fairValue + Restwert_akt
BuffettFairValue = Marktwert / ausstehendeaktien
ActiveSheet.Calculate
End Function
|