Option Explicit
Option Base 1
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim arrMonate
Dim arrDaten(1 To 4)
Dim lngZeile As Long
Dim bytMonat As Byte
If Sh.Name <> "Summary" Then
If (Target.Column = 4 Or Target.Column = 5 Or Target.Column = 7 Or Target.Column = 9) And Target.Row > 8 And Target.Row < 31 Then
For Each Sh In Worksheets
If Sh.Name <> "Summary" Then
If Month(Mid(Sh.Name, InStrRev(Sh.Name, " "))) = Month(Mid(ActiveSheet.Name, InStrRev(ActiveSheet.Name, " "))) Then
arrDaten(1) = arrDaten(1) + Sh.Range("D31")
arrDaten(2) = arrDaten(2) + Sh.Range("E31")
arrDaten(3) = arrDaten(3) + Sh.Range("G31")
arrDaten(4) = arrDaten(4) + Sh.Range("I31")
End If
End If
Next Sh
bytMonat = Month(Mid(ActiveSheet.Name, InStrRev(ActiveSheet.Name, " ")))
With Worksheets("Summary")
arrMonate = Application.Transpose(.Range("E9:E20"))
lngZeile = .Range("E9:E20").Find(arrMonate(bytMonat), lookat:=xlWhole).Row
.Cells(lngZeile, 6).Resize(1, 4) = arrDaten
End With
End If
End If
End SubOption Explicit
Option Base 1
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim arrMonate
Dim arrDaten(1 To 4)
Dim lngZeile As Long
Dim bytMonat As Byte
If Sh.Name <> "Summary" Then
If (Target.Column = 4 Or Target.Column = 5 Or Target.Column = 7 Or Target.Column = 9) And Target.Row > 8 And Target.Row < 31 Then
For Each Sh In Worksheets
If Sh.Name <> "Summary" Then
If Mid(Sh.Name, InStrRev(Sh.Name, " ")) = Mid(ActiveSheet.Name, InStrRev(ActiveSheet.Name, " ")) Then
arrDaten(1) = arrDaten(1) + Sh.Range("D31")
arrDaten(2) = arrDaten(2) + Sh.Range("E31")
arrDaten(3) = arrDaten(3) + Sh.Range("G31")
arrDaten(4) = arrDaten(4) + Sh.Range("I31")
End If
End If
Next Sh
bytMonat = Month(DateValue(Mid(ActiveSheet.Name, InStrRev(ActiveSheet.Name, " "))))
With Worksheets("Summary")
arrMonate = Application.Transpose(.Range("E9:E20"))
lngZeile = .Range("E9:E20").Find(arrMonate(bytMonat), lookat:=xlWhole).Row
.Cells(lngZeile, 6).Resize(1, 4) = arrDaten
End With
End If
End If
End Sub
Vorausgesetzt, das Muster für die Tabellenbezeichnungen ist
immer gleich: "Bezeichnung TT.MM.JJJJ"