30.05.2020, 22:47 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2020, 23:40 von thethinker.)
hallo miteinander ich möchte eine Tabelle mit negativen und positiven Werten bearbeiten.
Für jede Periode wird eine Fälligkeitsliste aus dem System generiert. In dieser Liste werden Forderungen (positive Werte) und Verbindlichkeiten/Gutschriften (negative Werte) nach ihrer Fälligkeit ausgegeben.
Jetzt sollen die positiven und negativen Werte miteinander verrechnet werden. Forderungen und Verbindlichkeiten werden soweit möglich miteinander ausgeglichen. Das soll ich für eine lange Liste per Hand machen.. :16:
Die Berechnung soll in Zelle C6 gestartet und L11 (bzw. letzten Wert einer langen Liste) beendet werden. Zusätzlich möchte ich eine Summe in Spalte M bekommen.
Dabei könnte der Wert in der 1 Saplte mit den folgenden verglichen werden und ggf. ausgeglichen werden. ich weiß aber nicht wie ich das in einer Schleife oder ähnlichen Lösen kann
Eine Lösung zu Fuß habe ich angefügt. Jetzt mit Anhang ….
Ich bin so dankbar wenn jemand eine Lösung für mich hat :19:
Mit VBA wäre das eine Variante. Der Code überschreibt direkt in der Datenliste. Also bei den ersten versuchen an einer Kopie arbeiten.
Für deine Originalliste den Datenbereich in der Zeile anpassen. Set rngA = Range("?????") 'Datenbereich
Code:
Public Sub Verrechne() Dim rngA As Range, j As Long, jj As Long, a As Long, OS As Long, OZ As Long
Set rngA = Range("C6:L11") 'Datenbereich OZ = rngA.Rows(1).Row OS = rngA.Columns(1).Column
For j = OZ To OZ + rngA.Rows.Count - 1 For jj = OS To OS + rngA.Columns.Count - 1 If Cells(j, jj) <> "" Then For a = jj + 1 To OS + rngA.Columns.Count - 1
If Cells(j, jj) > 0 And Cells(j, a) < 0 Then '(P/N) If Cells(j, jj) + Cells(j, a) > 0 Then Cells(j, jj) = Cells(j, jj) + Cells(j, a) If Cells(j, jj) = 0 Then Cells(j, jj) = "" Cells(j, a) = "" Else Cells(j, a) = Cells(j, jj) + Cells(j, a) If Cells(j, a) = 0 Then Cells(j, a) = "" Cells(j, jj) = "" Exit For End If End If
If Cells(j, jj) < 0 And Cells(j, a) > 0 Then '(N/P) If Cells(j, jj) + Cells(j, a) > 0 Then Cells(j, a) = Cells(j, jj) + Cells(j, a) If Cells(j, a) = 0 Then Cells(j, a) = "" Cells(j, jj) = "" Exit For Else Cells(j, jj) = Cells(j, jj) + Cells(j, a) If Cells(j, jj) = 0 Then Cells(j, jj) = "" Cells(j, a) = "" End If End If
Na, einfach das gesamte Formelergebnisrechteck markieren und mit gedrückter linker Maustaste dorthin ziehen, wo Du es haben willlst. Wenn es nicht klappt, nochmal eine Datei hochladen, in der man sehen kann, wo es hin soll.