Microsoft Excel

Herbers Excel/VBA-Archiv

Dynamische Länge für Summe

Betrifft: Dynamische Länge für Summe von: Christian
Geschrieben am: 14.11.2014 09:31:21

Hallo zusammen

ich muss hunderte Summenformeln erfassen, welche eine unterschiedliche Länge der Summierung aufweisen.
Wie kann ich beim makro den Parameter R[9]C dynamisch gestalten? Dieser R(9)C sollte die Summierung bis zum "Strg+Shift+Pfeil unten" machen, der Rest des Makros funktioniert, aber die Länge der Summe Formel müsste variabel sein.

Sub Makro1()
'
' Makro1 Makro
'
    ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[9]C)"
    Selection.End(xlDown).Select
    Selection.End(xlDown).Select
    ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[9]C)"
    End Sub

Danke für die Hilfe.

Beste Grüsse Christian

  

Betrifft: AW: Dynamische Länge für Summe von: Hajo_Zi
Geschrieben am: 14.11.2014 09:34:36

warum nicht immer bis Zeile 1.048.576?

GrußformelHomepage


  

Betrifft: AW: Dynamische Länge für Summe von: Beverly
Geschrieben am: 14.11.2014 09:49:39

Hi Christian,

welche Zelle ist bei dir aktiv, wenn du den Code ausführst? Vom Prinzip her könntest du es so versuchen:

    Dim lngLetzte As Long
    lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
        Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
    Range(Cells(1, 2), Cells(lngLetzte, 2)).Formula = "=SUM(A1:A" & lngLetzte & ")"
Spaltenbezeichnungen bzw. -nummern und Formel anpassen nicht vergessen!



GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Dynamische Länge für Summe von: Christian
Geschrieben am: 14.11.2014 11:07:57

Hallo Beverly Danke für die Info. ich beginne aber nicht immer bei A1, die Summenformeln sind untereinander.

https://www.herber.de/bbs/user/93767.xlsx

Siehe die Beispieldatei, immer dort wo das x steht muss die Formel rein, welche alle Zellen enthält, die unterhalb lückenlos vorhanden sind.

Vielen Dank und Gruss Christian


  

Betrifft: AW: Dynamische Länge für Summe von: Rudi Maintaire
Geschrieben am: 14.11.2014 11:20:04

Hallo,

Sub aaa()
  Dim c As Range
  For Each c In Columns(2).SpecialCells(xlCellTypeBlanks)
    If c.Offset(1) <> "" Then
      If c.Offset(2) = "" Then
        c.FormulaR1C1 = "=R[1]C"
      Else
        c.FormulaR1C1 = "=sum(R[1]C:R" & c.Offset(1).End(xlDown).Row & "c)"
      End If
    End If
  Next
End Sub

Gruß
Rudi


  

Betrifft: AW: Dynamische Länge für Summe von: Christian
Geschrieben am: 14.11.2014 14:00:19

DANKE! Funktioniert einwandfrei!
Gutes Wochenende!


  

Betrifft: AW: Dynamische Länge für Summe von: Beverly
Geschrieben am: 14.11.2014 11:33:01

Hi Christian,

Sub Summe()
    Dim lngZeile As Long
    Dim lngStart As Long
    lngStart = 2
    For lngZeile = 2 To IIf(IsEmpty(Cells(Rows.Count, 2)), _
        Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
        lngZeile = Cells(lngStart + 1, 2).End(xlDown).Row
        Cells(lngStart, 2).Formula = "=SUM(B" & lngStart + 1 & ":B" & lngZeile & ")"
        lngZeile = lngZeile + 4
        lngStart = lngZeile - 1
    Next lngZeile
End Sub

GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Dynamische Länge für Summe von: Christian
Geschrieben am: 14.11.2014 14:01:01

DANKE Funktioniert!
Gutes Wochenende!


 

Beiträge aus den Excel-Beispielen zum Thema "Dynamische Länge für Summe"