eine Makro-Lösung schaut etwa wie folgt aus. Die Liste der Tabellenblätter, die bei Summation nicht mit ausgewertet werden sollen muss du ggf. in der entsprechenden Case-Zeile anpassen bzw. ergänzen.
Gruß
Franz
Sub Summation()
Dim wksSumme As Worksheet, rngDatum As Range, SpalteZeit As Long
Dim wksData As Worksheet, ZeileData As Long, Zelle As Range
Dim Datum As Date, Zeit As Date
Set wksSumme = Worksheets("Tabelle2") 'Blatt in dem die Summen eingetragen werden sollen
With wksSumme
'Bereich mit den Datumsangaben für die summiert werden soll
Set rngDatum = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp))
'alte Summendaten löschen
.Range(.Cells(3, 2), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 24)).ClearContents
End With
'Alle Tabellenblätter abarbeiten
For Each wksData In ActiveWorkbook.Worksheets
Application.ScreenUpdating = False
Select Case LCase(wksData.Name)
Case LCase(wksSumme.Name), "tabelle1"
'Liste der Blätter, die nicht in der Summierung erfasst werden sollen \_
- Kleinbuchstaben!!
Case Else
With wksData
For ZeileData = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
'Datum und Zeit aus dem Text-Datum in Spalte 2 ermitteln
Datum = DateValue(Mid(.Cells(ZeileData, 2), 2, 10))
Zeit = TimeValue(Mid(.Cells(ZeileData, 2), 12, 8))
'Datum im Datumsbereich des Summenblatts suchen
Set Zelle = rngDatum.Find(What:=Datum, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
If MsgBox("Datum """ & Datum & """ aus Tabelle " & wksData.Name & " Zeile " \_
& ZeileData & " nicht in " & wksSumme.Name, vbOKCancel) = vbCancel \_
Then Exit Sub
Else
'Einfügespalte aus Zeit ermitteln
Select Case Zeit \* 24
Case Is \> 23: SpalteZeit = 24
Case Is \> 22: SpalteZeit = 23
Case Is \> 21: SpalteZeit = 22
Case Is \> 20: SpalteZeit = 21
Case Is \> 19: SpalteZeit = 20
Case Is \> 18: SpalteZeit = 19
Case Is \> 17: SpalteZeit = 18
Case Is \> 16: SpalteZeit = 17
Case Is \> 15: SpalteZeit = 16
Case Is \> 14: SpalteZeit = 15
Case Is \> 13: SpalteZeit = 14
Case Is \> 12: SpalteZeit = 13
Case Is \> 11: SpalteZeit = 12
Case Is \> 10: SpalteZeit = 11
Case Is \> 9: SpalteZeit = 10
Case Is \> 8: SpalteZeit = 9
Case Is \> 7: SpalteZeit = 8
Case Is \> 6: SpalteZeit = 7
Case Is \> 5: SpalteZeit = 6
Case Is \> 4: SpalteZeit = 5
Case Is \> 3: SpalteZeit = 4
Case Is \> 2: SpalteZeit = 3
Case Is \> 1: SpalteZeit = 2
Case Is \>= 0: SpalteZeit = 1
End Select
Zelle.Offset(0, SpalteZeit).Value = Zelle.Offset(0, SpalteZeit).Value \_
+ .Cells(ZeileData, 6) 'Wert aus Spalte F
End If
Next
End With
End Select
Application.ScreenUpdating = True
Next
End Sub