Hallo,
besten Dank für den Tipp. Allerdings ist das eine "zähe" Lösung. Aufgrund der Datenmenge braucht Excel jetzt jedesmal 1-2 Sekunden zur Neuberechnung, wenn ich ein Feld im sheet anklicke. Ich hab's stattdessen mit "private sub worksheet_Change (byVal Target as Range)" probiert. Allerdings bekomme ich dort immer einen "Laufzeitfehler 28: Nicht genügend Stapelspeicher" bei der Festlegung von SpalteMax.
Hier nochmal die private sub zur Anschauung. Die Range von "tbl_Personalplanung" ist B3:AK80. Vielleicht fällt Euch der Fehler auf.
Private Sub worksheet_change(ByVal Target As Range)
Dim SummeBoniRob As Currency, SummeGrimme As Currency, SummeSmartCenter As Currency, SummeAdmin As Currency
Dim Zeile As Long
Dim Spalte As Long
Dim SpalteMax As Long, ZeileMax As Long
With Tabelle4
SpalteMax = .Range("tbl_Personalplanung").Columns.Count
ZeileMax = .Range("tbl_Personalplanung").Rows.Count
For Spalte = 2 To SpalteMax
For Zeile = 5 To ZeileMax Step 7
If Cells(Zeile, Spalte).Value = "BoniRob" Then
SummeBoniRob = SummeBoniRob + Cells(Zeile + 4, Spalte).Value
On Error Resume Next
Else
If Cells(Zeile, Spalte).Value = "Grimme" Then
SummeGrimme = SummeGrimme + Cells(Zeile + 4, Spalte).Value
On Error Resume Next
Else
If Cells(Zeile, Spalte).Value = "SmartCenter" Then
SummeSmartCenter = SummeSmartCenter + Cells(Zeile + 4, Spalte).Value
On Error Resume Next
Else
If Cells(Zeile, Spalte).Value = "PA" Then
SummeAdmin = SummeAdmin + Cells(Zeile + 4, Spalte).Value
On Error Resume Next
End If
End If
End If
End If
Next Zeile
Cells(ZeileMax - 2, Spalte).Value = SummeBoniRob
Cells(ZeileMax - 1, Spalte).Value = SummeSmartCenter
Cells(ZeileMax, Spalte).Value = SummeGrimme
Cells(ZeileMax + 1, Spalte).Value = SummeAdmin
SummeBoniRob = 0
SummeSmartCenter = 0
SummeGrimme = 0
SummeAdmin = 0
Next Spalte
End With
End Sub
|