VBA-Code für Summenformel an best. Stelle gesucht

... komplette Frage anzeigen

4 Antworten

Range ("A:A").Select

For c in Selection.Cells

If c.value = "Gesamtsumme"

wert = c.row

Range("I"&wert).Formula.local "=Summe(I7:I" & wert-1 ")"

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PinoGrigio
16.06.2011, 12:22

Hallo Chris,
vielen Dank für deinen Lösungsvorschlag,
aber mein VBA-Compiler sagt bei dieser Zeile:

Range("I"&wert).Formula.local "=Summe(I7:I" & wert-1 ")"

"Fehler beim Komplieren"
"Erwartet Anweisungsende"
dabei sind die letzten 3 Zeichen ")" unterlegt.
Was könnte da fehlen?
Gruß PG

0
Kommentar von PinoGrigio
17.06.2011, 18:06

Hallo Chris,
ganz fehletrfrei war dein Code nicht, aber du hast mich auf den richtigen Weg gebracht!

Richtig lautet er jetzt so:

Range("A1:A30").Select    For Each c In Selection.Cells    If c.Value = "Gesamtsumme" Then     wert = c.Row     Range("I" & wert).FormulaLocal = "=Summe(I7:I" & wert - 1 & ")"  End If  Next c  

Wichtig auch: FormulaLocal ohne Punkt zwischen Formula und Local!

Gruß und Danke nochmals PG

0

neuer Versuch, den Code anständig anzuzeigen:

'   Gesamtsumme in erster Spalte finden    Cells.Find(What:="Gesamtsumme", After:=ActiveCell, LookIn:=xlFormulas, _    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _    MatchCase:=False, SearchFormat:=False).Activate''   Gesamtsumme in Spalte I bilden    Range("I25").Select    ActiveCell.FormulaR1C1 = "=SUM(R[7]C:R[-4]C)"

Gruß PG

Antwort bewerten Vielen Dank für Deine Bewertung

dritter Versuch:

   Cells.Find(What:="Gesamtsumme", After:=ActiveCell, LookIn:=xlFormulas, _       LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _       MatchCase:=False, SearchFormat:=False).ActivateRange("I25").Select     ActiveCell.FormulaR1C1 = "=SUM(R[7]C:R[-4]C)"

Gruß PG (in der Vorschau sieht es immer gut aus!?)

Antwort bewerten Vielen Dank für Deine Bewertung

In etwa so:

For I = 1 to 10 J = I * 4 Range("I" & (J+4)).FormulaR1C1 = "=SUM(R[-" & J & "]C:R[-" & J+4 & "]C)" Next I

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Ragnar12983
15.06.2011, 19:51

so hoffentlich lesbarer

For I = 1 to 10   J = I * 4  Range("I" & (J+4)).FormulaR1C1 = _      "=SUM(R[-" & J & "]C:R[-" & J+4 & "]C)"Next I

... wenn immer 4 Zeilen zusammengefasst werden sollen

0
Kommentar von PinoGrigio
16.06.2011, 12:54

Hallo Ragnar,
danke dir für deinen Lösungsvorschlag, aber (genauso wie bei Chris) meckert der Kompiler diese Zeile

Range("I" &(J+4)).FormulaR1C1 = "=SUM(R[-"&J&"]C:R[-"&J+4&"]C)"

an,
"Fehler beim Komplieren"
"Erwartet Anweisungsende"
wobei diese Stelle in der Zeile unterlegt erscheint:

"]C:R[-"

Was könnte da fehlen?

Gruß PG
PS: Ich habe Excel 2007

0

Was möchtest Du wissen?