AW: Zeilen nach Datum trennen
27.05.2007 10:23:12
ingUR
Hallo, Günter,
obwohl auch ich Deine Datei nicht laden kann, habe ich auf der Grundlage Deiner Beschreibung einmal ein Grundgerüst eines Makro geschrieben, dass die aufgabe, so wie ich sie verstanden habe, mutatis mutandis, also nachdem, was zu ändern ist, lösen könnte:
Option Explicit
Const DATENLISTE = "Tabelle1"
Const ERSTEDATENZEILE = 2
Const DATUMINSPALTE = 1
Const WERTINSPALTE = "E"
Sub MonatlicheSummenbildung()
Dim ws As Worksheet, maxR As Long, r As Long, r0 As Long
Dim RngC As Range
Set ws = Worksheets(DATENLISTE)
maxR = ws.Cells(Rows.Count, DATUMINSPALTE).End(xlUp).Row
r = ERSTEDATENZEILE
r0 = r
Do
If r = maxR Or _
(Cells(r, DATUMINSPALTE) > 0 And _
Cells(r + 1, DATUMINSPALTE) > 0 And _
Month(Cells(r, DATUMINSPALTE)) Month(Cells(r + 1, DATUMINSPALTE))) Then
Rows(r + 1 & ":" & r + 3).Insert Shift:=xlDown
'Bilde Range, über die die Summe gebildet werden soll
Set RngC = Range(WERTINSPALTE & r0 & ":" & WERTINSPALTE & r)
'Schreibe Summe und Mittelwert
Cells(r + 1, WERTINSPALTE) = Round(Application.Sum(RngC), 2)
Cells(r + 2, WERTINSPALTE) = Round(Application.Average(RngC), 2)
r = r + 3
maxR = maxR + 3
r0 = r + 1
End If
r = r + 1
Loop Until r > maxR
Set ws = Nothing
Set RngC = Nothing
End Sub
In meiner Ausgangsdatei ist die Datumspalte, die erste Spalte (DATUMINSPALTE=1) in der Tabelle mit dem Namen "Tabelle1" (DATENLISTE = "Tabelle1") . Die Datenreihe beginnt in der Zeile 2 (ERSTEDATENZEILE = 2) und die Summen und Durchschnittsbildung erfolgt für die Bereichswerte der Spalte E (WERTINSPALTE = "E".
Ich hoffe es ist ein Stück des Weges zur Lösung.
Gruß,
Uwe