Hallo, ich habe eine Liste mit verschiedenen Dingen, welche alle eine Stückzahl haben. Zum Beispiel Sessel mit Anzahl 3. Ich möchte nun dass mir der Durchschnitt aller Stückzahlen für Sessel ausgegen wird. Ich möchte also eine Liste in welcher Die Gegenstände mit dem Durchschnitt der Stückzahl angegeben wird. Ich möchte dies mit VBA lösen. Es soll also ein automatisierter Vorgang sein. Folgenden Code habe ich bis jetzt. Dieser berechnet jedoch nicht den Durchschnitt, sondern nur die Summe.
Sub Summe_Datenbereich()
Dim ArreayData()
Dim oDicBezeichnung As Object, oDicSumme As Object
Dim A&
Set oDicBezeichnung = CreateObject("Scripting.Dictionary")
Set oDicSumme = CreateObject("Scripting.Dictionary")
With Tabelle1
oDicBezeichnung(.Range("A1")) = .Range("B2")
oDicSumme(.Range("A1")) = .Range("E1")
ArreayData = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 5).Value2
End With
For A = 1 To UBound(ArreayData)
If oDicBezeichnung.exists(ArreayData(A, 1)) Then
oDicSumme(ArreayData(A, 1)) = oDicSumme(ArreayData(A, 1)) + ArreayData(A, 5)
Else
oDicBezeichnung(ArreayData(A, 1)) = ArreayData(A, 2)
oDicSumme(ArreayData(A, 1)) = ArreayData(A, 5)
End If
Next A
With Tabelle2
.Range("A1:E1").EntireColumn.Clear
.Range("A1").Resize(oDicSumme.Count) = Application.Transpose(oDicBezeichnung.keys)
.Range("B1").Resize(oDicSumme.Count) = Application.Transpose(oDicBezeichnung.items)
.Range("E1").Resize(oDicSumme.Count) = Application.Transpose(oDicSumme.items)
.Rows(1).Font.Bold = True
.Range("A1:E1").EntireColumn.AutoFit
.Activate
End With
End Sub
|