Excel VBA - Formel ziehen von bis

Nico_B

Lt. Junior Grade
Registriert
Sep. 2010
Beiträge
345
Guten Morgen.

Ich habe Excel-Arbeitsmappe die aus mehren Tabellenblättern besteht. Auf dem Tabellenblatt Auswertung erfolgt gleichnamiges. Hier kann es aber sein, dass mit der Zeit weitere Auswertungskritieren hinzukommen, die ihrerseits wieder summiert werden.

Ich würde die folgende VBA-Funktion daher gerne so abändern, dass der Code nicht von der Ausgangszeile bis zur letzten beschriebenen Zeile gezogen wird sondern von einem bestimmten Startpunkt bis zu einem Endpunkt.

Code:
Sub SummenPerMakro()
Dim Zelle As Range
Dim Nr As Long
For Each Zelle In ActiveSheet.Range("d2:d10")
 Nr = Zelle.Row
 Zelle.FormulaLocal = "=SUMME(A" & Nr & ":C" & Nr & ")"
Next Zelle
End Sub

Start- und Endpunkt sind auf dem auf dem Tabellenblatt Optionen definiert.

Start: Zelle B57 - Variable s - Wert s + 1
Ende: Zelle B58 - variable e - Wert e - 1

Theoretisch kann es sein, dass in manchen bereichen s und e identisch sind. eine Fehlermeldung sollte abgefangen werden.

Hat jemand eine Idee?
 
Ich habe es trotz mehrmaligem Durchlesen nicht verstanden was Du genau möchtest. Kannst Du das bitte noch etwas genauer ausführen? Das wäre hilfreich.
 
Ich würde die folgende VBA-Funktion daher gerne so abändern, dass der Code nicht von der Ausgangszeile bis zur letzten beschriebenen Zeile gezogen wird sondern von einem bestimmten Startpunkt bis zu einem Endpunkt.
Großes Fragezeichen… …auch bei mir.
Formeln ziehe ich mit der Maus im Blatt, nicht in VBA.
Und der Range D2 : D10 sieht für mich sehr nach einem bestimmten Start- und Endpunkt aus.

Wo also drückt die Sandale?

CN8
 
Also der Code schreibt in Spalte D (aktuell D2 : D10), dass jeweils in derselben Zeile die Spaltenwerte A:C summiert werden sollen? Und das möchtest du dynamisch haben? Würde es nicht reichen, auf deinem Auswertungsblatt A : D als Tabelle zu formatieren? Wenn dann Werte in den Spalten A:C dazu kommen, sollte auch die Formel in D nach unten verlängert werden.
 
In deinem Code steht doch drin wo der Bereich definiert ist bis zu welchem die Formeln gezogen werden sollen
.Range("d2:d10")

Das musst du eben entsprechend anpassen...

Wie wird diese Funktion aufgerufen?
 
Zurück
Oben