Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summe in neue Zeile einfügen

Summe in neue Zeile einfügen
20.02.2013 15:18:14
Stefan
Hallo Zusammen,
hatte bereits einen Beitrag hioerzu geschrieben, der aber mitlerweile im Archiv gelandet ist und ich weiss nich wie ihn dort bearbeiten kann.
Der User "fcs" hat mir bereits geholfen und ein entsprechende VBA erstellt bzw. das vorhandene geändert.
Leider habe ich nicht erwähnt, dass die neue Zeile unterhalb der Zeile 1 eingefügt weren soll. Die Summe soll dann ab Zeile 3 bis zur letzten Zeile gebildet werden. Die letzte Zeile ist nicht definiert. Aber in jeder Spalte gleich.
Sorry hatte ich beim letzten mal nicht erwähnt...

Hallo Stefan,
für Summenformeln unterhalb der letzten Datenzeile sieht es etwa wie folgt aus.
Gruß
Franz

Sub aaSummenformel_in_Zeile()
' Modul: Einfügen einer neuen Zeile mit Summierung
Dim Zeile_L As Long, arrSheets, iSheet As Integer, wks As Worksheet
arrSheets = Array("M1 Flatter", "M1", "M2 Flatter", "M2", _
"M3 Flatter", "M3", "M4 Flatter", "M4")
For iSheet = LBound(arrSheets) To UBound(arrSheets)
Set wks = Worksheets(arrSheets(iSheet))
With wks
'nächste freie Zeile
Zeile_L = .Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row + 1
If Zeile_L >= 3 Then
.Rows(Zeile_L).Insert Shift:=xlShiftDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Cells(Zeile_L, 1) = "Summe"
'Formeln in Zeile einfügen von Spalte B (2) bis D (4) -Summierung ab Zeile 3
.Range(.Cells(Zeile_L, 2), .Cells(Zeile_L, 4)).FormulaR1C1 = _
"=SUM(R3C[0]:R[-1]C[0])"
'Summenzeile formatieren
With .Range(.Cells(Zeile_L, 1), .Cells(Zeile_L, 4))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Font.Bold = True
End With
End If
End With
Next
Sheets("Tabelle1").Select
Range("A1").Select
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe in neue Zeile einfügen
20.02.2013 16:37:59
Stefan
Hallo Nochmal...
bin jetzt etwas weiter gekommen...
Die neue Zeile wird eingefügt und die Summe wird gebildet.
Leider wird die Summe nicht über die ganze Spalte gebildet und ich verstehe nicht, wie ich die Formel dazu anpassen muss..
Ich habe jetzt erstmal die Zeile 500 in die Formel eingetragen. Die Letzte Zeile ist aus der Spalte A zu ermitteln.

' Modul: Einfügen einer neuen Zeile mit Summierung
Dim Zeile_L As Long, arrSheets, iSheet As Integer, wks As Worksheet
arrSheets = Array("M1 Flatter", "M1", "M2 Flatter", "M2", _
"M3 Flatter", "M3", "M4 Flatter", "M4")
For iSheet = LBound(arrSheets) To UBound(arrSheets)
Set wks = Worksheets(arrSheets(iSheet))
With wks
.Rows(2).Insert Shift:=xlShiftDown, CopyOrigin:=xlFormatFromRightOrBelow
.Cells(2, 1) = "Summe"
'Formeln in Zeile einfügen von Spalte B (2) bis D (34) -Summierung ab Zeile 3
Zeile_L = .Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious).Row + 1
.Range(.Cells(2, 2), .Cells(2, 34)).FormulaR1C1 = _
"=SUM(R1C[0]:R500C[0])"
'Summenzeile formatieren
With .Range(.Cells(2, 1), .Cells(2, 34))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Font.Bold = True
End With
End With
Next
Sheets("Tabelle1").Select
Range("A1").Select

Anzeige
RC
20.02.2013 16:45:36
JACKD
Beschreibt den Row und Colum offset
Du musst jetzt eine variable für die Letzte gefüllt zeile einschreiben
Also "zähle letzte benutzte Zeile"
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
davon ziehst du die Zeilen Oberhalb incl der Summenzeile ab (2)
und hast dann letztezeile-2
"=SUM(R1C[0]:R" & letztezeile-2 & "C[0])"
so oder so ähnlich ....

AW: RC
20.02.2013 17:16:40
Stefan
Funzt leider nicht, es kommt eine Fehlermeldung
verstehe nicht, wie die Schreibweise ind er Formel sein muss!
Habe es wie folgt eingefügt...

' Modul: Einfügen einer neuen Zeile mit Summierung
Dim letztezeile As Long, arrSheets, iSheet As Integer, wks As Worksheet
arrSheets = Array("M1 Flatter", "M1", "M2 Flatter", "M2", _
"M3 Flatter", "M3", "M4 Flatter", "M4")
For iSheet = LBound(arrSheets) To UBound(arrSheets)
Set wks = Worksheets(arrSheets(iSheet))
With wks
.Rows(2).Insert Shift:=xlShiftDown, CopyOrigin:=xlFormatFromRightOrBelow
.Cells(2, 1) = "Summe"
'Formeln in Zeile einfügen von Spalte B (2) bis D (34) -Summierung ab Zeile 3
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
.Range(.Cells(2, 2), .Cells(2, 34)).FormulaR1C1 = _
"=SUM(R1C[0]:R" & letztezeile - 2 & "C[0])"
'Summenzeile formatieren
With .Range(.Cells(2, 1), .Cells(2, 34))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Font.Bold = True
End With
End With
Next
Sheets("Tabelle1").Select
Range("A1").Select

Anzeige
"=SUM(R1C:R" & letztezeile - 2 & "C)" ...
20.02.2013 18:05:12
Luc:-?
…meint Summe von Zeile1 der FmlStandortSpalte bis zur vorvorletzten Zeile dieser Spalte, Stefan;
die Zeilen sind absolut adressiert, die Spalten relativ. [0] kann stets entfallen.
Gruß Luc :-?

AW: "=SUM(R1C:R" & letztezeile - 2 & "C)" ...
20.02.2013 20:54:10
Jack
Ohne es grad zu prüfen,
Aber du spricht mit letztezeile das sheet1 an.
Wenn es das nicht ist bekommst mal ein Problem ;-)
Also ich glaub du kannst sheet1 auch weglassen da du ja mit wks die Blätter ansprichst
Grüße

AW: "=SUM(R1C:R" & letztezeile - 2 & "C)" ...
21.02.2013 09:06:12
Stefan
Ne, es geht weiterhin nicht :-(
Ich bekomme immer eine Fehlermeldung
Fehler 1004; Application-defined or object-defined error

Anzeige
AW: "=SUM(R1C:R" & letztezeile - 2 & "C)" ...
21.02.2013 09:07:15
JACKD
in welcher Zeile denn?
Gruß

AW: "=SUM(R1C:R" & letztezeile - 2 & "C)" ...
21.02.2013 09:10:12
Stefan

.Range(.Cells(2, 2), .Cells(2, 34)).FormulaR1C1 = _
"=SUM(R1C:R" & letztezeile - 2 & "C)"
Habe mal die Datei hochgeladen --> https://www.herber.de/bbs/user/84004.xlsm

Änderung?
21.02.2013 09:48:26
JACKD
Ich hab jetzt mal das Makro, bzw. den einzelnen Teil rausgezogen und durchlaufen lassen
mit einer Änderung (hab ich ja gestern schon angeregt)
letztezeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row  
statt
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row 

Warum? du bist mit deiner Schleife im jeweiligen WKS (x;y;Z..) also musst du auch im jeweiligen den benutzten Bereich ermitteln.
Grüße

Anzeige
Änderung 2
21.02.2013 09:54:56
JACKD
nochmal angepasst, da er irgendwie anders mit dem offset arbeitet, als ich es mir vorgestellt hab..
letztezeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
.Range(.Cells(2, 2), .Cells(2, 34)).FormulaR1C1 = _
"=SUM(R3C:R" & letztezeile & "C)"
Grüße

AW: Änderung 2
21.02.2013 10:01:17
Stefan
Hallo JACKD,
es FUNZT :-)
Vielen Dank, Supper....

Danke für die Rückmeldung owT.
21.02.2013 10:07:54
JACKD
.

345 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige