Saldieren von Beträgen jeweils zweier Spalten mit Bedingung

Hallo an alle,
Ich habe wöchentlich eine Datei mit jeweils unterschiedlicher Anzahl von Zeilen.
Die Datei enthält in mehreren Spalten (nebeneinander) Beträge, die miteinander verrechnet werden sollen, Ich möchte das gern mit einem Makro abarbeiten. Stehe aber gerade auf dem Schlauch und komme zu keiner Lösung. Ich würde mich sehr freuen über Vorschläge.
Die Verrechnung beginnt in Spalte O. Wenn eine Zelle der Spalte O einen Wert kleiner 0 enthält, soll dieser Wert mit dem Wert der benachbarten Zelle in der gleichen Zeile in der Spalte N verrechnet werden und in diese benachbarte Zelle in Spalte N eingetragen werden.
Beispiel:
N1=120, O1=12
N2=752, O2=-3
N3=378, O3=29
N4=701, O4=17
N5=903, O5=-907

Das Ergebnis soll wie folgt aussehen:
N1=120, O1=12
N2=749, O2=""
N3=378, O3=29
N4=701, O4=17
N5=-4, O5=""

Nachdem die Spalte O auf diese Weise von den Minus-Salden „bereinigt“ wurde, soll die Spalte N ebenfalls genauso überprüft werden. Die Minus-Salden werden dann entsprechend mit den Werten in der Spalte M verrechnet. Usw. Die letzte Spalte, die auf diese Weise „bereinigt“ wird, ist die Spalte I. In der Spalte H bleiben die Minus-Salden stehen, falls vorhanden.
Die Spalten I bis O enthalten am Ende der Prozedur keine einzige Zelle mit einem negativen Betrag.
Danke im Voraus für eure Mühe.
LG Marion

Hallo Marion - schon ewig lange nicht mehr gesehen!
Ich habe zu Deinem Ablauf folgenden Vorschlag.
Grüsse Niclaus

Sub test()
lz = Range("A1").SpecialCells(xlCellTypeLastCell).Row
' letzte benutzte Zeile in der aktiven Tabelle
For sp = 15 To 9 Step -1    ' Sp O = 15 / Sp I = 9
    For i = 1 To lz
        mVal = Cells(i, sp)
            If mVal < 0 Then
                Cells(i, sp) = ""
                Cells(i, sp - 1) = Cells(i, sp - 1) + mVal
            End If
    Next i
Next sp
End Sub
1 Like

Hallo Niclaus,
ja stimmt - und einiges gerät leider in Vergessenheit.
Makro passt und läuft fix und fehlerfrei durch meine Testdateien.
Herzlichen Dank.

Lieben Gruß
Marion

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.