DEFINIRE NOME RIFERITO A FORMULA



  • DEFINIRE NOME RIFERITO A FORMULA
    di riccardo57 data: 25/09/2012 17:34:37

    Ciao

    questa volta spero che sia la procedura giusta per non sovrappormi ad un'altra discussione

    sul foglio "BASE" ho definito nelle celle A1, A2, B1, B2, i suguenti valori:

    A B
    1 h mq
    2 10,00 2500,00

    ho definito un nuovo nome chiamato "FORMULA" che fa riferimento alla seguente formula:
    =CONCATENA("nr 1 x "& '$BASE'!$A$1 & " " &'$BASE'!$A$2 & " : "&'$BASE'!$B$1 & " " &'$BASE'!$B$2)
    in modo che quando nelle altre celle vado ad inserire "=FORMULA", mi compaia
    "nr 1 x h 1,00 : mq 2500,00"

    Fino a quando compio questa funzione manualmente tutto bene.

    Anche quando tramite il registratore inserisco la seguente macro tutto funziona:

    Sub Macro5()
    "=CONCATENATE(""nr 1 x ""&'[BASE_DIM.xlsb]$BASE'!R6C9&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C9&"" : ""&'[BASE_DIM.xlsb]$BASE'!R6C8&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C8)"
    ActiveWorkbook.Names("FORMULA").Comment = ""
    'ActiveCell.FormulaR1C1 = "=FORMULA"
    End sub

    Soltanto che i riferimenti di cella sono relativi, non riesco a trsformarli in riferimenti assoluti.

    Qualcuno mi può dare una mano a cambiare la formula in VBA?
    Se volessi ottenere i riferimenti di cella in assoluti (tipo $A$1), devo settare qualche variabile prima di registrare la macro?

    Grazie
     
    Sub Macro5()
    "=CONCATENATE(""nr 1 x ""&'[BASE_DIM.xlsb]$BASE'!R6C9&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C9&"" : ""&'[BASE_DIM.xlsb]$BASE'!R6C8&"" ""&'[BASE_DIM.xlsb]$BASE'!R7C8)"
        ActiveWorkbook.Names("FORMULA").Comment = ""
        'ActiveCell.FormulaR1C1 = "=FORMULA"
    End sub



  • di Vecchio Frac data: 25/09/2012 18:07:02

    cit. " Soltanto che i riferimenti di cella sono relativi, non riesco a trsformarli in riferimenti assoluti."
    --> Non capisco questa frase. I riferimenti sono già assoluti (ci sono i dollari!), dove sta il problema? io peraltro semplificherei il nome di funzione =Formula lasciando perdere Concatena (che peraltro non usi nel modo corretto) e la scriverei, semplicemente, così:
    ="nr 1 x " & $A$1 & " " & $A$2 & " : " & $B$1 & " " & $B$2

    cit. " Qualcuno mi può dare una mano a cambiare la formula in VBA? Se volessi ottenere i riferimenti di cella in assoluti (tipo $A$1), devo settare qualche variabile prima di registrare la macro?"
    --> non ho capito la domanda, se la formula funziona nel foglio, perchè la vuoi ricostruire con VBA?
    Anche lo facessi, come la useresti poi? Fai qualche esempio pratico. Perchè una formula che dà sempre costantemente un risultato fisso, concatendando assieme i valori di due celle del foglio, non la vedo di grande utilità.