Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Werte über verschieden viele Zeilen summieren
#1
Hallo,

ich möchte gern eine Investitionssumme über eine vorgegebene Nutzungsdauer hinweg abschreiben. Die Investitionssumme, Nutzungsdauer und daraus resultierende Abschreibung stehen in den Spalten, die einzelnen Jahre, die ich betrachte in den Zeilen. Bei einer Nutzungsdauer von 10 Jahren soll also in den nächsten 10 Zeilen für die Abschreibung Investitionssumme/Nutzungsdauer stehen. 
Jetzt kommen in den folgenden Jahren noch weitere Investitionen hinzu. Wenn sich der Zeitraum der Abschreibung überschneidet, sollen die beiden Werte gleich addiert werden. 

.xlsx   Beispiel.xlsx (Größe: 18,56 KB / Downloads: 11)

In der Beispieldatei habe ich mein Ziel farbig markiert. 
Es wäre schön, wenn das, was ich per Hand eingetragen habe, automatisch gezogen wird, damit man nur noch die gelben Zellen befüllen muss.

Hat da jemand eine Idee? Ich hoffe das war nicht zu konfus!

Vielen Dank!
Antworten Top
#2
Hallo wilde.13,

in der Tat eine interessante Aufgabenstellung die Du da mitgebracht hast.

Dazu mehrere Fragen:
a) Es werden Bewertungsgrundsätze i.S.d. §252 ff. HGB angewandt (?)
b) Es wird ausschließlich lineare Abschreibung angewandt (?)
c) Eine wesentliche Veränderung kann zur Wertberichtigung führen (?)
d) Eine außerplanmäßige Abschreibung kann zur Wertberichtigung führen (?)
e) Makros sind ausdrücklich erwünscht (?)
f) Das sieht doch ziemlich nach Buchführungspflicht (Doppik) aus; Keine Software im Einsatz die einen Export ermöglicht (?)
gruß
Marco
Antworten Top
#3
Hallo Marco,

die Abschreibung erfolgt hier nicht nach HGB sondern nach der Netzentgeltverordnung - hier unterscheiden sich für meine Berechnung aber im Grunde nur die Nutzungsdauern, was aber für die Gesamtsumme erstmal egal ist. Und ja, es wird nur linear abgeschrieben. Wertberichtigung wird hier nicht beachtet, das erfolgt in einer späteren Tabelle. Ich möchte hier wirklich nur die linearen Abschreibungen aufsummieren.
Wenn das Ganze ohne Makros zu lösen wäre, wäre das toll. Sonst nehme ich aber auch ein Makro Wink
SAP Exporte kommen nicht in Frage, da es sich nur um Investitionsvarianten handelt, die noch nicht realisiert wurden und damit auch nicht im System stehen. Da möchte ich gern verschiedene Möglichkeiten vergleichen.

Ich wollte auch gern auf Hilfsspalten mit einem Zähler verzichten, da es ja theoretisch möglich wäre, dass in jedem Jahr eine neue Investition steht.

Ich hab auch gerade gesehen, dass in der Beispieldatei noch ein Fehler bei der Summe Afa war - hier die korrigierte Version!

.xlsx   Beispiel_korrigiert.xlsx (Größe: 17,64 KB / Downloads: 3)

Viele Grüße
Antworten Top
#4
Hi wilde.13,

hier mal ein Schnellvorschlag:


Code:
Option Explicit
Const m_Investition As String = "Eingabe Investitionskosten"

Sub main()
    Dim wkb As Workbook
    Dim wks As Worksheet
    Dim rngSAV1 As Range, rngSAV2 As Range
    Dim b As Boolean
    '
    On Error GoTo err
    '
    Call TurnOffFunctionality
    '
    Set wkb = ThisWorkbook
    Set wks = wkb.Worksheets(m_Investition)
    Set rngSAV1 = wks.Range("C7:C51")
    Set rngSAV2 = wks.Range("H7:H53")
    '
    rngSAV1.Offset(0, 4).ClearContents
    rngSAV2.Offset(0, 4).ClearContents
    '
    b = addAfa(rngSAV1)
    b = addAfa(rngSAV2)
    '
err:
If err.Number <> 0 Then
    MsgBox err.Number & vbCrLf & err.Description
End If
'
Call TurnOnFunctionality
'
Set wks = Nothing: Set wkb = Nothing
End Sub

Public Sub TurnOffFunctionality()
    Application.Calculation = xlCalculationManual
    Application.DisplayStatusBar = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
End Sub
Public Sub TurnOnFunctionality()
    Application.Calculation = xlCalculationAutomatic
    Application.DisplayStatusBar = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Function addAfa(ByRef rng As Range) As Boolean
    Dim c As Range
    Dim dblNutzungsdauer As Double
    Dim dblAfaProRataTemporis As Double
    Dim lng As Long
    '
    For Each c In rng
        If c.Value = vbNullString Then
        Else
            dblNutzungsdauer = c.Offset(0, 3).Value2
            dblAfaProRataTemporis = c.Offset(0, 2).Value2 / dblNutzungsdauer
            For lng = 0 To dblNutzungsdauer - 1 Step 1
                c.Offset(lng, 4).Value2 = c.Offset(lng, 4).Value2 + dblAfaProRataTemporis
            Next lng
        End If
    Next c
    '
End Function

Hinweis:
Auf großartige Fehlerbehandlung und Dynamik habe ich verzichtet.
Wenn Du bspw. die Bereiche erweitern oder Ändern möchtest, bedarf es einem Eingriff oder einer Anpassung.

Jetzt bist Du wieder am Zug:
Zeichne ein Button und weise Ihm das Makro zu :)


Angehängte Dateien
.xlsm   Beispiel_korrigiert.xlsm (Größe: 25,97 KB / Downloads: 5)
gruß
Marco
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • wilde.13
Antworten Top
#5
Frage:
Da ich in der StromNev weniger unterwegs bin, gibt es Sonderfälle wo die degressive Afa zulässig wäre?
gruß
Marco
Antworten Top
#6
Es hat zwar eine Weile gedauert, aber ich habe deinen Code jetzt für meine Tabelle verwendet. Vielen Dank dafür - funktioniert ausgezeichnet!

Kann man das denn noch automatisieren, dass ich keinen Button drücken muss? 
Du siehst - VBA ist noch nicht wirklich meine Welt Wink
Antworten Top
#7
Hallo wilde.13,

das freut mich : )

Zu Deiner Frage:
An was hast Du den gedacht?
gruß
Marco
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste