Visualizzazione post con etichetta Excel. Mostra tutti i post
Visualizzazione post con etichetta Excel. Mostra tutti i post

giovedì 16 aprile 2009

Macro per formule automatiche su riga

Lo scopo di questo post è spiegare come inserire una riga di formule in vba in excel.
questo può venire applicato per ad esempio creare una serie di righe contenenti ad esempio formule e valori ripetute per n righe secondo un criterio stabilito o proveniente dalle elaborazioni...
le funzioni da utilizzare sono:

  • ActiveCell.Offset(rowOffset:="spostamento righe",columnOffset:="spostamento colonne").select
    questo comando serve per rendedre attiva una cella dando lo spostamento dalla corrente
  • ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    questo comando serve per inserire una formula in luguaggio magro utilizzando il riferimento riga colonna per le celle
  • ActiveCell.FormulaR1C1Local = "=somma(r[1]c:r[4]c)
    questo comando a differenza del presente utilizza il linguaggio excel con i riferimenti riga colonna
Un esempio dell'utilizzo delle precedenti formule in un foglio dove si calcola il piano di ammortamento di un mutuo.

ActiveCell.FormulaR1C1 = "=R[-1]C+1"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1Local = "=ASS(RATA(rc[6]/r6c2;r7c2--R[-1]C[-1];R[-1]C[5]))+RC[1]"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1Local = "0"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1Local = "=R[-1]C[3]*(RC[4]/R6C2)"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1 = "=RC[4]-RC[-1]"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-1]"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1 = "=R[-1]C-RC[-2]"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1 = "=R[-1]C"
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select
ActiveCell.FormulaR1C1 = "=R[-1]C"