Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1640to1644
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

Summenbildung mit variablem Bereich

Summenbildung mit variablem Bereich
21.08.2018 10:38:50
Marc-Oliver
Hallo zusammen,
ich habe ein Problem und komme absolut nicht weiter.
Ich habe eine Tabelle, welche durch jeweils 2 Leerzeilen in Abschnitte unterteilt ist.
Unter jeden Abschnitt in die erste Leerzeile, Zelle z.B. F20 soll er nun die Summe der vorstehenden Werte bilden. Also F19 bis F10. Die Zelle F20 wähle ich per Offset in einem anderen Makro aus.
Der Code unten gibt mir den Anfang F19 und das Ende F10 aus, nur weiß ich nicht wie ich das in die Summenformel einbauen kann.
Die Fehlermeldung lautet: Laufzeitfehler 1004 - Anwendungs- oder Objektdefinierter Fehler
Sub Zeilen_nach_oben_bis_1_Leerzeile_zählen()
Dim Zeilenzahl As Long
Zeilenzahl = Selection.CurrentRegion.Rows.Count - 1
'MsgBox Zeilenzahl
ActiveCell.Formula = "=Summe(" & Zeilenzahl & " : " & ActiveCell.Row - 1 & ")"
End Sub

Vielleicht kann mir jemand von den Profis helfen :)
Dankeschön.
Vg Olli

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summenbildung mit variablem Bereich
21.08.2018 10:57:08
Marc-Oliver
Hallo,
ich habe nun verstanden, dass er ja Bezüge benötigt und nicht mit 20 oder 30 rechnen kann.
Das brachte mich auf die Funktion Address(0,0). Das klappt bei activecell.Address(0,0) auch super,
jedoch weiß ich (noch) nicht wie ich das in die variable "Zeilenzahl" einbauen kann.
hat da evtl. jemand einen Ansatz?
Vg Olli
AW: Summenbildung mit variablem Bereich
21.08.2018 11:05:36
Luschi
Hallo Olli,
- Selection in der Excel-Vba-Programmierung ist das selbe als ob ich behaupte:
  im Himmel ist Jahrmarkt
- CurrentRegion ist genau so ungewiß wie die Wetterberichts-Vorhersage
- ActiveCell kann hier-da-dort sein, also total unbrauchbar!
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Summenbildung mit variablem Bereich
21.08.2018 11:05:49
Robert
Hallo Olli,
versuche es aml so:
Sub Zeilen_nach_oben_bis_1_Leerzeile_zählen()
Dim Zeilenzahl As Long
Zeilenzahl = Selection.CurrentRegion.Rows.Count - 1
'MsgBox Zeilenzahl
ActiveCell.FormulaR1C1 = "=SUM(R[-" & Zeilenzahl & "]C:R[-1]C)"
End Sub
Gruß
Robert
AW: Summenbildung mit variablem Bereich
21.08.2018 11:11:37
Marc-Oliver
Hallo Robert,
vielen Dank! Das passt super.
Genau das war auch mein erster Ansatz, aber ich habe es nicht geschafft die variable in die richtige Position zu setzen.
Dankeschön :)
Gerne und Danke für die Rückmeldung (owT)
21.08.2018 13:11:00
Robert
AW: Summenbildung mit variablem Bereich
21.08.2018 11:03:45
Klexy
Dein Code würde das hinschreiben: =SUMME(10 : 19)
Da fehlt der Hinweis auf die Spalte F
"=Summe(F" & Zeilenzahl & ":F" & ActiveCell.Row - 1 & ")"
Und dann noch ActiveCell.FormulaLocal = "=Summe(F" & Zeilenzahl & ":F" & ActiveCell.Row - 1 & ")"
Anzeige
AW: Summenbildung mit variablem Bereich
21.08.2018 11:26:22
Klexy
Du schreibst "unter jeden Abschnitt" - also hast du mehrere Abschnitte. Mit deinem Code oder den anderen angebotenen Lösungen kannst du aber nur jeweils den einen markierten Abschnitt berechnen.
Hier ist ein Code, der dir alle Abschnitte aufsummiert:

Sub Bereiche_aufsummieren()
Dim ErsteZeile As Long, LetzteZeile As Long, Berechnungsspalte As Long, Berechnungsbereich As  _
Range, zelle As Range
Berechnungsspalte = Range("F1").Column
Set Berechnungsbereich = Range(Cells(1, Berechnungsspalte), Cells(ActiveSheet.UsedRange.Rows. _
Count + 1, Berechnungsspalte))
For Each zelle In Berechnungsbereich
If zelle.Value  "" And ErsteZeile = 0 Then
ErsteZeile = zelle.Row
End If
If zelle.Value = "" And ErsteZeile  0 Then
LetzteZeile = zelle.Row - 1
ActiveCell.FormulaLocal = "=Summe(F" & ErsteZeile & ":F" & LetzteZeile & ")"
ActiveCell.Font.Bold = True
ActiveCell.Font.Color = RGB(255, 0, 0)
ErsteZeile = 0
End If
Next zelle
End Sub

Anzeige
Fehlerkorrektur: vergiss meinen vorigen Beitrag
21.08.2018 11:29:49
Klexy
Du schreibst "unter jeden Abschnitt" - also hast du mehrere Abschnitte. Mit deinem Code oder den anderen angebotenen Lösungen kannst du aber nur jeweils den einen markierten Abschnitt berechnen.
Hier ist ein Code, der dir alle Abschnitte aufsummiert:
Sub Bereiche_aufsummieren()
Dim ErsteZeile As Long, LetzteZeile As Long, Berechnungsspalte As Long, Berechnungsbereich As  _
Range, zelle As Range
Berechnungsspalte = Range("F1").Column
Set Berechnungsbereich = Range(Cells(1, Berechnungsspalte), Cells(ActiveSheet.UsedRange.Rows. _
Count + 1, Berechnungsspalte))
For Each zelle In Berechnungsbereich
If zelle.Value  "" And ErsteZeile = 0 Then
ErsteZeile = zelle.Row
End If
If zelle.Value = "" And ErsteZeile  0 Then
LetzteZeile = zelle.Row - 1
zelle.FormulaLocal = "=Summe(F" & ErsteZeile & ":F" & LetzteZeile & ")"
zelle.Font.Bold = True
zelle.Font.Color = RGB(255, 0, 0)
ErsteZeile = 0
End If
Next zelle
End Sub

Anzeige
AW: Fehlerkorrektur: vergiss meinen vorigen Beitrag
21.08.2018 11:35:07
Marc-Oliver
Hi Klexy,
du hast recht, ich hätte es als Lösungsansatz über die .Offset Funktion beim einfügen der Leerzeilen gelöst.
Ich werde deinen Code bei mir einbauen.
Vielen Dank für deine / Eure Unterstützung.
Ich muss noch einiges lernen :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige