Summen-Formel in VBA

Bild

Betrifft: Summen-Formel in VBA von: Heinz
Geschrieben am: 03.03.2005 17:17:34

Liebe Excellenten,

ich habe folgendes Problem.
Ich habe in Spalte C (von C11 bis C43) absteigend
absolute Werte.
In der Zelle D11 (also rechts daneben) soll
via VBA "sinngemäß" die Formel C11 durch Summe(C11:C43)
enthalten sein.
Das muß aber irgendwie als Formel (und nicht als Festwert) da rein,
weil ich anschließend die Formel (mit autofill) nach unten ziehen möchte.
Also in der Zelle D12 muß (nach dem autofill) "sinngemäß"
C12 / Summe(C11:C43) drinstehen.

... und ich kriegs nicht hin.

Ich freue mich auf Eure Lösungsvorschläge.

Heinz

Bild


Betrifft: AW: Summen-Formel in VBA von: Andi
Geschrieben am: 03.03.2005 17:28:24

Hi,

muss es VBA sein?
Wenn ich Dich richtig verstanden habe, müsste
=C11/SUMME($C$11:$C$43)
doch auch gehen; die Formel kannst Du dann einfach runterkopieren.

Schönen Gruß,
Andi


Bild


Betrifft: [d11].formulaLocal="=Formel" von: ransi
Geschrieben am: 03.03.2005 17:29:25

hallo heinz

versuchs mal so:

[d11].formulaLocal="=C11/Summe($c$11:$c$43)"

ransi


Bild


Betrifft: AW: [d11].formulaLocal="=Formel" von: Heinz
Geschrieben am: 04.03.2005 16:43:16

Hallo ransi,

das kommt schon sehr nahe.
Ein Problem habe ich aber noch.
Während der Beginn der Spaltensumme mit Zeile 11
immer konstant ist, würde ich das Ende (in meinem
Beispiel die Zeile 43) gerne mit einer Variablen
einspielen.
Wie man eine Variable anlegt und mit der Zeilenzahl
aus der letzten Zeile belegt weis ich, aber wie kann ich
in Deine Formel diese Variable einbauen?

Ich freue mich auf Eure Rückmeldungen.
Heinz


Bild


Betrifft: AW: [d11].formulaLocal="=Formel" von: ransi
Geschrieben am: 04.03.2005 17:07:11

Hallo heinz

geht z.B. so:

Public
Sub t()
Dim Variable As Long
Variable = 60 'z.B
[d11].FormulaLocal = "=C11/Summe($c$11:$c$" & Variable & ")"
End Sub


ransi


Bild


Betrifft: Perfekt!!! vielen Dank o.T. von: Heinz
Geschrieben am: 04.03.2005 19:20:52




Bild


Betrifft: AW: [d11].formulaLocal="=Formel" von: Harry
Geschrieben am: 04.03.2005 19:32:34

Hallo Heinz,

versuch's mal mit folgendem Code:

Sub Summe_erstellen() 'Dauer: ca. 4 Sekunden
    'erstellt Summenformel für "C12:C43" in Zelle "D11":
    ActiveSheet.Cells(11, 4).FormulaR1C1 = "=SUM(RC[-1]:R[65525]C[-1])"
    Formel_runterziehen
End Sub
Sub Formel_runterziehen()
    'zieht Berechnung runter (Bsp. für eine solche Formel (i = 12):
    'D12=C12/$D$11 in Zelle "D12")
    Dim i As Long
    For i = 12 To 65536 'ab Zeile 12...
        'Gilt nur für Zellen, die nicht leer sind:
        If ActiveSheet.Cells(i, 3).Value <> "" Then
        ActiveSheet.Cells(i, 4).FormulaR1C1 = "=RC[-1]/R11C4"
        End If
    Next i
End Sub


Dieses Beipielmakro erstellt zuerst die Summe in "D11" und zieht dann die Berechnung bis zur letzten Zeile der Spalte "D", wobei leere Zellen in der Spalte "C" nicht berechnet werden

Gruss Harry


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spalten für Druck ausblenden, Auswahl über 'Box'?"