Excel Summenbildung mit VBA
Hallo an Alle,
ich habe wieder mal eine Frage bzw. ein Problem.
In einer Exceldatei befinden sich 2 Spalten mit Inhalten. Spalte A mit der Überschrift in Zelle A1 "Kauf / Verkauf" .. mit den Inhalten entweder ein "K" oder ein "VK" .. und in Spalte B mit der Überschrift in Zelle B1 "Anzahl" .. mit negativen oder positiven Zahlen (ohne Dezimalstellen)
Wenn in Spalte A (ab Zelle A2) ein VK steht, dann ist die Zahl in Spalte B (ab Zelle B2) eine negative Zahl.
Jetzt kommt mein Problem:
Ich muss nach allen Käufen eine Summe bilden und auch nach allen Verkäufen.
Beispiel:
Ist-Zustand
A2 K B2 10
A3 K B3 20
A4 K B4 15
A5 VK B5 -5
A6 VK B6 -5
A7 K B7 35
Soll-Zustand
A2 K B2 10
A3 K B3 20
A4 K B4 15
A5 B5 45
A6 VK B6 -5
A7 VK B7 -5
A8 B8 35
A9 K B9 35
A10 B10 70
usw.
Wer kann mir bitte helfen dies mit VBA zu lösen?
Vielen Dank und viele Grüße
ich habe wieder mal eine Frage bzw. ein Problem.
In einer Exceldatei befinden sich 2 Spalten mit Inhalten. Spalte A mit der Überschrift in Zelle A1 "Kauf / Verkauf" .. mit den Inhalten entweder ein "K" oder ein "VK" .. und in Spalte B mit der Überschrift in Zelle B1 "Anzahl" .. mit negativen oder positiven Zahlen (ohne Dezimalstellen)
Wenn in Spalte A (ab Zelle A2) ein VK steht, dann ist die Zahl in Spalte B (ab Zelle B2) eine negative Zahl.
Jetzt kommt mein Problem:
Ich muss nach allen Käufen eine Summe bilden und auch nach allen Verkäufen.
Beispiel:
Ist-Zustand
A2 K B2 10
A3 K B3 20
A4 K B4 15
A5 VK B5 -5
A6 VK B6 -5
A7 K B7 35
Soll-Zustand
A2 K B2 10
A3 K B3 20
A4 K B4 15
A5 B5 45
A6 VK B6 -5
A7 VK B7 -5
A8 B8 35
A9 K B9 35
A10 B10 70
usw.
Wer kann mir bitte helfen dies mit VBA zu lösen?
Vielen Dank und viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 275423
Url: https://administrator.de/forum/excel-summenbildung-mit-vba-275423.html
Ausgedruckt am: 30.01.2025 um 18:01 Uhr
12 Kommentare
Neuester Kommentar
Da reicht die Formel SUMMEWENN()
Gleiche Daten abgleichen und zusammenfassen
und
Gruß jodel32
Gleiche Daten abgleichen und zusammenfassen
=Summewenn(A1:A20;"VK";B1:B20)
=Summewenn(A1:A20;"K";B1:B20)
Sub Zwischensummen()
Dim currentCell As Range, rngSumStart As Long
With ActiveSheet
Set currentCell = .Range("A2")
rngSumStart = .Range("A2").Row
While currentCell.Value <> ""
If currentCell.Offset(1, 0).Value <> currentCell.Value Then
currentCell.Offset(1, 0).EntireRow.Insert xlShiftDown
currentCell.Offset(1, 0).Value = "Zwischensumme"
currentCell.Offset(1, 1).Formula = "=Sum(B" & rngSumStart & ":B" & currentCell.Row & ")"
rngSumStart = currentCell.Row + 2
Set currentCell = currentCell.Offset(2, 0)
Else
Set currentCell = currentCell.Offset(1, 0)
End If
Wend
End With
End Sub
Was bedeutet currentCell.offset(1, 0) ... die 1 und die 0?
Eine Zelle relativ zu einer anderen, die erste Zahl ist der Offset vertikal(RowOffset) und die zweite horizontal(ColumnOffset) zur Zelle die mit currentCell referenziert ist.Lässt sich aber mit einem einfachen Blick in die Doku auch erfahren !
https://msdn.microsoft.com/de-de/library/office/ff840060.aspx
Das wusste ich nicht das du das so haben wolltest, aber deshalb habe ich dir doch SummeWenn vorgeschlagen, Ganz einfach in zwei Zellen unterhalb der ganzen Zahlen einfgefügt und schon hast du das richtige Ergebnis ! Warum so umständlich ?
Schau dir mal die Doku zu SummeWenn an dann weist du was Sache ist!
SummeWenn zählt nur die Zahlen zusammen die entweder VK haben oder eben in einer anderen Formel K feddich ... ist doch nicht so schwer ...
Schau dir mal die Doku zu SummeWenn an dann weist du was Sache ist!
SummeWenn zählt nur die Zahlen zusammen die entweder VK haben oder eben in einer anderen Formel K feddich ... ist doch nicht so schwer ...
Kann man diesen Schritt nicht in Dein vorhandenes VBA Script einbauen?
Klar, einfach die Summenformel durch Summewenn() (sumif()) ersetzen.Das solltest du jetzt auch selber hinbekommen, bringt ja nix wenn ich dir hier alles vorbete. Sollst ja auch was dabei lernen ...
Probiers also erst mal selber und wenn du bis morgen nicht weiterkommst melde dich nochmal. Dann poste ich dir die Lösung.
Edit: Hier die Lösung für den Fall das du hier noch mal vorbei schaust: Zeile 10 so abändern
currentCell.Offset(1, 1).Formula = "=Sumif(A2:A" & currentCell.Row & ",""<>Zwischensumme"",B2:B" & currentCell.Row & ")"