Hallo!
Ich habe ein Excel-Sheet (Tabelle1) mit 17 Spalten, wobei die erste Spalte die Beschriftungen beinhaltet.
Ich möchte jetzt diverse Zeilen, die in bestimmten Spalten den gleichen Inhalt haben, zu einer Spalte zusammenfassen, dabei aber Werte von 2 bestimmten Spalten dabei addieren.
Das heißt habe ich 5 Zeilen, bei denen die Werte aus bestimmten Spalten (Zellen) jeweils identisch sind, soll nur noch einmal dieser Satz angezeigt werden. Dabei sollen aber wiederum Werte aus anderen Spalten (Zellen) addiert werden.
Beispiel:
So sieht es aus:
So soll es aussehen:
Die neue geänderte Tabelle soll dabei in das Sheet Tabelle2 übernommen werden.
Mein VBA-Code sieht so aus:
Ich hab zwar volle Systemauslastung, wenn ich den Code ausführe, aber es passiert anscheinend nichts.
Ich habe bestimmt irgendeinen Fehler gemacht. Könnt Ihr mir sagen, wo das Problem begraben liegt?
Ich habe ein Excel-Sheet (Tabelle1) mit 17 Spalten, wobei die erste Spalte die Beschriftungen beinhaltet.
Ich möchte jetzt diverse Zeilen, die in bestimmten Spalten den gleichen Inhalt haben, zu einer Spalte zusammenfassen, dabei aber Werte von 2 bestimmten Spalten dabei addieren.
Das heißt habe ich 5 Zeilen, bei denen die Werte aus bestimmten Spalten (Zellen) jeweils identisch sind, soll nur noch einmal dieser Satz angezeigt werden. Dabei sollen aber wiederum Werte aus anderen Spalten (Zellen) addiert werden.
Beispiel:
So sieht es aus:
Code:
spalte1 | spalte2 | spalte3 | spalte4
bla | a | x | 2
bla | a | x | 5
blubb | b | z | 10
blubb | b | z | 1
blubb | b | z | 4
So soll es aussehen:
Code:
spalte1 | spalte2 | spalte3 | spalte4
bla | a | x | 7
blubb | b | z | 15
Die neue geänderte Tabelle soll dabei in das Sheet Tabelle2 übernommen werden.
Mein VBA-Code sieht so aus:
Code:
Sub Zusammenfassen()
Dim Zeile As Integer
Dim i As Integer
Dim counter As Integer
Dim counter2 As Integer
Dim AbsName As String
Dim EmpfName As String
Dim EmpfOrt As String
Dim Datum As String
Dim Gewicht As Long
Dim Umsatz As Long
Zeile = 2
Do While Cells(Zeile, 1) <> ""
Sheets("Tabelle1").Select
AbsName = Cells(Zeile, 3)
EmpfName = Cells(Zeile, 4)
EmpfOrt = Cells(Zeile, 7)
Datum = Cells(Zeile, 2)
Cells(UsedRange.Rows.Count, 1).EntireRow.Copy _
Tabelle2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
i = 1
counter = 2
counter2 = 2
Do While Cells(Zeile, 1) <> ""
If Cells(counter2, 3) = AbsName And Cells(counter2, 4) = EmpfName And Cells(counter2, 7) = EmpfOrt And Cells(counter2, 2) = Datum Then
Gewicht = Cells(counter2, 8)
Umsatz = Cells(counter2, 9)
Sheets("Tabelle2").Select
Cells(i, 8) = Cells(i, 8) + Gewicht
Cells(i, 9) = Cells(i, 9) + Umsatz
End If
Loop
i = i + 1
counter = counter + 1
counter2 = counter2 + 1
Zeile = Zeile + 1
Loop
End Sub
Ich hab zwar volle Systemauslastung, wenn ich den Code ausführe, aber es passiert anscheinend nichts.
Ich habe bestimmt irgendeinen Fehler gemacht. Könnt Ihr mir sagen, wo das Problem begraben liegt?