AW: Teilergebnis
10.03.2011 07:06:41
fcs
Hallo Mitch,
das folgende Makro erstellt/aktualisiert eine Gruppierung, formatiert die Ergebniszeilen und passt die Einträge in einigen Spalten der Ergebniszeile an.
Details muss du ggf. an deine Daten anpassen.
Gruß
Franz
'Erstellt unter Excel 2007
Sub Gruppierung_Werte_einfügen()
' Daten gruppiern und in Ergebniszeilen Werte anpassen
Dim SpalteGroup As Long, arrTotal
Dim wks As Worksheet
Dim Zeile As Long, Spalte As Long, ZeileTitel As Long
Set wks = ActiveSheet
wks.Activate
SpalteGroup = 1 'Spalte nach der gruppiert werden soll - Spalte A
arrTotal = Array(4, 5, 6) 'Nummern der Spalten in denen Teilsummen berechnet _
werden sollen - Spalten D, E und F
ZeileTitel = 1 'Zeile mit den Spaltentiteln
Cells(ZeileTitel, 1).Select 'Zelle in Zeile mit Spaltentiteln selektieren
'Gruppierung der Daten
Selection.Subtotal GroupBy:=SpalteGroup, _
Function:=xlSum, TotalList:=arrTotal, _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
'Ergebniszeilen formatieren und Werte eintragen/anpassen
With wks
For Zeile = .Cells(.Rows.Count, SpalteGroup).End(xlUp).Row To ZeileTitel Step -1
If InStr(1, LCase(.Cells(Zeile, SpalteGroup)), "ergebnis") > 0 Then
'Ergebniszeile fett formatieren
.Rows(Zeile).Font.Bold = True
If InStr(1, .Cells(Zeile, SpalteGroup), "Gesamtergebnis") = 0 Then
'Werte in einigen Spalten der Teilergebniszeile anpassen
For Spalte = 1 To 8
Select Case Spalte
Case 1, 2, 8 'Spalten A, B, H
'Wert aus Zeile oberhalb von Zeile mit Teilergebnissen einfügen
.Cells(Zeile, Spalte).Value = .Cells(Zeile - 1, Spalte).Value
Case 3 'Spalte C
.Cells(Zeile, Spalte).Value = "Ergebnis"
Case Else
'do nothing
End Select
Next Spalte
End If
End If
Next Zeile
End With
End Sub