Microsoft Excel

Herbers Excel/VBA-Archiv

Formel per Makro erweitern

Betrifft: Formel per Makro erweitern von: Steffen
Geschrieben am: 21.10.2014 12:50:28

Hallo,

ich habe eine Exceltabelle wobei in Spalte A unter anderem die Jahreszahlen stehen

A B C
30 2011 5%
31 2012
32 2013
33 2014 2%

Weiterhin habe ich eine Formel =((1+C30)*(1+C31)*(1+C32)*(1+C33))-1

Ich brauche nun ein Makro welches per Button ausgelöst wird und unter der Zeile 33 eine neue Zeile einfügt, die jeweils nächste Jahreszahl einfügt (hier 2015) und die Formel dementsprechent erweitert.

Das ganze sollte dann so aussehen:

A B C
30 2011 5%
31 2012
32 2013
33 2014 2%
34 2015 1%

Formel=((1+C30)*(1+C31)*(1+C32)*(1+C33)*(1+C34))-1

Wenn ich dann erneut auf den Button klicke soll natürlich das jahr 2016 eingefügt werden und auch die Formel wieder um den entsprechnenden Teil erweiter werden usw.

Leider komm ich da nicht wirklich weiter mit meinen Kenntnissen und wäre für jede anregung dankbar!

  

Betrifft: AW: Formel per Makro erweitern von: Daniel
Geschrieben am: 21.10.2014 13:04:54

Hi
verwende folgende Formel:

=PRODUKT(C30:C99+1)-1

Achtung: Matrixformel, Eingabe immer mit STRG+SHIFT+ENTER abschließen!!!
ist hier ganz wichtig, weil die Formel bei normaler Eingabe zwar auch ein Ergebnis, aber ein falsches liefert.

die Zeile für die untere Zelle kannst du beliebig weit wählen, am besten soweit wie du maximal Zahlen eingeben willst. Solange die Zellen leer sind, hat das keinen Einfluss auf das Ergebnis.
Textwerte führen zu einem Fehler.

wenn unterhalb der Daten noch Texte oder Zahlen stehen, dann gehe so vor:
Wähle den Zellbereich eine Zeile weiter als du aktuell Daten hast (dh die folgende Leerzeile mitnehmen)
Wenn du jetzt bei einer Erweiterung der Tabelle eine neue Zeile zwischen der letzten Befüllgen und dieser Leerzeile einfügest, passt sich der Zellbezug automatsich mit an.

Gruß Daniel


  

Betrifft: AW: Formel per Makro erweitern von: Steffen
Geschrieben am: 21.10.2014 19:27:30

Hallo Daniel,

das klappt supper :-)
der Tipp mit der Matrixformel ist supper und hat mir dann auch bei dem Makro weitergeholfen ( Die Idee mit dem Bereich und das der Zellbezug sich dann automatisch erweitert hat mir gefehlt):

Set Bereich = Range("A1:A6")

Bereich.Cells(1, 1).End(xlDown).Offset(1, 0).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromAbove
ActiveCell.FormulaR1C1 = "=R[-1]C+1"

Besten Dank,

Steffen


 

Beiträge aus den Excel-Beispielen zum Thema "Formel per Makro erweitern"