Tipp 11.3 - Lineare Afa

Wie kann ich eine lineare Abschreibung berechnen?

Anlagegegenstände unterliegen der Wertminderung. Die Abschreibungen sollen diese Wertminderung erfassen. Dazu stehen verschiedene Verfahren zur Verfügung, einmal die lineare Abschreibung mit gleich bleibenden Abschreibungsbeträgen oder die degressive Abschreibung, bei der die anfänglichen Raten sehr hoch sind.

Bei der linearen Abschreibung wird jährlich derselbe Betrag abgeschrieben; dies entspricht der einfachen Zinsrechnung. Der jährliche Abschreibungsbetrag (A) ergibt sich aus dem Anschaffungs- oder Herstellungswert (Bo) geteilt durch die gewöhnliche Nutzungsdauer (n).

Der jährliche Abschreibungsbetrag wird kleiner, wenn ein Restbuchwert (Bn) oder Schrottwert (S) berücksichtigt wird. Hier ergibt sich dann der Abschreibungsbetrag durch (Bo – Bn) / n.

In Excel können Sie für die lineare Afa die Funktion LIA einsetzen. In VBA finden Sie ein Gegenstück: die SLN Funktion. Dieser Funktion können Sie folgende Parameter mitgeben:

  • cost: Anschaffungswert
  • salvage: Restbuch- bzw. Schrottwert
  • life: Nutzungsdauer

Hier nun ein kleines Beispiel: Eine Maschine im Wert von 10.000 Euro soll in 5 Jahren linear auf einen Restbuchwert von 100 Euro abgeschieben werden. So könnte die Funktion ausschauen:

Beispiel:

' Straight-line depreciation of an asset for a single period
Sub LiaAfa(pcWert As Currency, pcRestwert As Currency, piDauer As Integer)
 
  '// -----------------------------------------------------
  '// Methode   | Berechnet eine lineare Abschreibung
  '// -----------------------------------------------------
  '// Parameter | pcWert     - Anschaffungswert
  '               pcRestwert - Restbuchungswert
  '               piDauer    - Nutzungsdauer
  '// -----------------------------------------------------
  '// Erstellt  | Stefan Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  '// Beispielaufruf im Direktfenster z.B.:
  '   LiaAfa 10000,100,5
  '// -----------------------------------------------------
 
  Dim iLoop As Integer
  Dim sMsg As String
  Dim sFormat As String
 
  Dim cAfa As Currency
  Dim cRest As Currency
 
  On Error GoTo LiaAfa_Err
 
  sFormat = "###,##0.00"
 
  ' Kopfzeile definieren
  sMsg = "Lineare Afa" & vbCrLf & String$(30, "=")
  sMsg = sMsg & vbCrLf & "Anschaffungswert: " & Format$(pcWert, sFormat)
  sMsg = sMsg & vbCrLf & "Nutzungsdauer:    " & piDauer & " Jahre"
 
  ' Diese spezielle Formatierung wird angewendet, um
  ' eine rechtsbündige Formatierung im Direktfenster
  ' zu realisieren
  sMsg = sMsg & vbCrLf & String$(30, "-") & vbCrLf
  sMsg = sMsg & "Jahr"
 
  ' dito, siehe zuvor
  sMsg = sMsg & Space(Len(Format$(pcWert, sFormat)) + 1 - Len("Afa")) & "Afa"
  sMsg = sMsg & Space(Len(Format$(pcWert, sFormat)) + 1 - Len("Rest")) & "Rest" & vbCrLf
 
  ' Abschreibungsbetrag errechnen
  cAfa = CCur(SLN(pcWert, pcRestwert, piDauer))
  ' Rest-/Startwert zuweisen
  cRest = pcWert
 
  ' Schleife über die Nutzungsdauer
  For iLoop = 1 To piDauer
    ' Restwert berechnen
    cRest = cRest - cAfa
    ' Ausgabe der Abschreibungswert, Formatierung s.o.
    sMsg = sMsg & Space(4 - Len(CStr(iLoop))) & CStr(iLoop)
    sMsg = sMsg & Space(Len(Format$(pcWert, sFormat)) + 1 _
                        - Len(Format$(cAfa, sFormat))) _
                        & Format$(cAfa, sFormat)
    sMsg = sMsg & Space(Len(Format$(pcWert, sFormat)) + 1 _
                        - Len(Format$(cRest, sFormat))) _
                        & Format$(cRest, sFormat)
    sMsg = sMsg & vbCrLf
  Next iLoop
 
  ' Ausgabe im Direktfenster
  Debug.Print sMsg
 
LiaAfa_Exit:
  On Error GoTo 0
  Exit Sub
 
LiaAfa_Err:
  MsgBox "Fehler " & Err.Number & ": " & _
         Err.Description, vbCritical, _
         "modFinancial.LiaAfa"
  Resume LiaAfa_Exit
 
End Sub
Das Ergebnis im Direktfenster
Lineare Afa
------------------------------
Anschaffungswert: 10.000,00
Nutzungsdauer:    5 Jahre
------------------------------
Jahr       Afa      Rest
   1  1.980,00  8.020,00
   2  1.980,00  6.040,00
   3  1.980,00  4.060,00
   4  1.980,00  2.080,00
   5  1.980,00    100,00