Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summenformel in leere Zeile eintragen

Summenformel in leere Zeile eintragen
Heiner
Hallo zusammen,
ich füge in eine Monatstabelle eine leere Zeile bei Wechsel der KW über folgendes Makro ein:

Sub Leerzeile()
Dim wks1 As Worksheet
Dim i As Long
Dim lastrow As Long
Set wks1 = ActiveWorkbook.ActiveSheet
With wks1
Application.EnableEvents = False
lastrow = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count) '   _
_
_
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lastrow To 6 Step -1
If Cells(i, 3).Value = "" Or Cells(i - 1, 3).Value = "" Then
ElseIf Cells(i, 3).Value  Cells(i - 1, 3).Value Then
Rows(i).Insert
End If
Next i
Application.EnableEvents = True
End With
End Sub
Nun möchte ich in den jeweiligen Leerzeilen in Spalte 3 + 4 die Summe der Werte bis zur nächsten Leerzeile eintragen und in Spalte 5 als Ergebnis Spalte 3/Spalte4 ausgeben.
Kann mir jemand bei der erweiterung des Makros helfen?
Gruß und schönes Wochenende
Heiner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Summenformel in leere Zeile eintragen
29.10.2011 13:08:48
fcs
Hallo Heiner,
sollte so funktionieren.
Gruß
Franz

Sub Leerzeile()
Dim wks1 As Worksheet
Dim i As Long, ZeileL As Long
Dim lastrow As Long
Set wks1 = ActiveWorkbook.ActiveSheet
With wks1
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
lastrow = IIf(IsEmpty(.Cells(Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row, _
.Rows.Count) ' UsedRange.SpecialCells(xlCellTypeLastCell).Row
ZeileL = lastrow + 1
For i = lastrow To 6 Step -1
If .Cells(i, 3).Value = "" Or .Cells(i - 1, 3).Value = "" Then
ElseIf Cells(i, 3).Value  Cells(i - 1, 3).Value Then
.Rows(i).Insert
.Cells(i, 3).FormulaR1C1 = "=SUM(R[1]C:R[" & ZeileL - i & "]C)"
.Cells(i, 4).FormulaR1C1 = "=SUM(R[1]C:R[" & ZeileL - i & "]C)"
.Cells(i, 5).FormulaR1C1 = "=RC[-2]/RC[-1]"
ZeileL = i
End If
Next i
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige
AW: Summenformel in leere Zeile eintragen
29.10.2011 18:15:48
Heiner
Hallo Franz,
vielen Dank, klappt soweit super.
Die Leerzeilen werden von unten nach oben eingefügt. Die summen werden durch dein Makro von oben nach unten gebildet. Summe sollte von Leerzeile nach oben bis nächste Leerzeile gebildet werden.
Was muss ich dafür ändern?
Gruß
Heiner
AW: Summenformel in leere Zeile eintragen
29.10.2011 18:28:16
Heiner
Hallo Franz,
noch ein Nachtrag:
Die Summen sollten als Einzelsummen pro Block (leerzeile-leerzeile) gebildet werden.
Hoffe sowas ist überhaupt möglich.
Gruß
Heiner
AW: Summenformel in leere Zeile eintragen
29.10.2011 22:01:03
fcs
Hallo Heiner,
mit der nachfolgenden Variante werden die Summen der Zeilen oberhalb der eingefügten Leerzeilen berechenet.
Falls es nicht dann bitte eine Datei mit ein paar Beispieldaten hochladen zum Testen.
Gruß
Franz

Sub Leerzeile()
Dim wks1 As Worksheet
Dim i As Long, ZeileL As Long
Dim lastrow As Long
Set wks1 = ActiveWorkbook.ActiveSheet
With wks1
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
lastrow = IIf(IsEmpty(.Cells(Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row, _
.Rows.Count) ' UsedRange.SpecialCells(xlCellTypeLastCell).Row
For i = lastrow To 6 Step -1
If .Cells(i, 3).Value = "" Or .Cells(i - 1, 3).Value = "" Then
ElseIf Cells(i, 3).Value  Cells(i - 1, 3).Value Then
.Rows(i).Insert
End If
Next i
lastrow = IIf(IsEmpty(.Cells(Rows.Count, 3)), .Cells(.Rows.Count, 3).End(xlUp).Row, _
.Rows.Count) ' UsedRange.SpecialCells(xlCellTypeLastCell).Row
ZeileL = 5
For i = 6 To lastrow + 1
If .Cells(i, 3).Value = "" Then
.Cells(i, 3).FormulaR1C1 = "=SUM(R[-" & i - ZeileL & "]C:R[-1]C)"
.Cells(i, 4).FormulaR1C1 = "=SUM(R[-" & i - ZeileL & "]C:R[-1]C)"
.Cells(i, 5).FormulaR1C1 = "=RC[-2]/RC[-1]"
ZeileL = i + 1
End If
Next i
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige
AW: Summenformel in leere Zeile eintragen
30.10.2011 13:48:44
Heiner
Hallo Franz,
klappt SUPER. Vielen Dank für Deine Unterstützung und einen schönen Sonntag
wünscht Dir
Heiner

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige