Problema al editar una fórmula en una macro

Cuando editas una fórmula en una macro, para después copiarla como valor, esta queda fija y aunque posteriormente cambies la fórmula al lanzar la macro siempre da la fórmula original.
Application.Goto Reference:="OrigenRM"
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "='Tabla AM'!R[6]C[-136]"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=+RC[-168]+RC[-167]+RC[-166]+RC[-165]+RC[-164]+RC[-163]+RC[-162]+RC[-161]+RC[-160]+RC[-159]+RC[-158]+RC[-157]+RC[-156]+RC[-155]+RC[-154]+RC[-153]+RC[-152]+RC[-151]+RC[-150]+RC[-149]+RC[-148]+RC[-147]+RC[-146]+RC[-120]+RC[-43]+RC[-23]"
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A40")
ActiveCell.Range("A1:A40").Select
¿Se puede solucionar?
Muchas GRACIAS

1 respuesta

Respuesta
1
No entiendo bien tu pregunta; lo que si te comento es que pudieras simplificar mucho la fmla de las sumas del final si lo cambias por:
ActiveCell.FormulaR1C1 = _
"=SUM(RC[-168]:RC[-146];RC[-120];RC[-43];RC[-23])"
Respecto a tu pregunta original si la podes aclarar un poco vemos como arreglarla juntos.
Perdón por el retraso en contestar pero he estado fuera.
Tenia una hoja excel de ejemplo pero no la puedo enviar, te envío la siguiente información, por si te sirve para entender mi pregunta inicial.
Col.A Col.B Col.C Col.D Col.E Col.F Col.G FormulaOriginal Resultado Macro
1 3 2 5 6 3 4 =+A2+B2+C2+D2+E2
La FormulaOriginal es un literal que obtenemos de una tabla.
Al ejecutar esta macro se sumaran siempre la 5 celdas.
Mi pregunta es :
Que se puede hacer para que si el literal, obtenido de la tabla, cambia a '=+A2+B2+C2+D2+E2+F2+G2
la formula generada en la macro cambie tambien (automaticamente)
Gracias
= = = = = = = = = =
Macro :
Sub EditarSI()
'
' EditarSI Macro
' Macro grabada el 22/11/2005 por General Optica
'
' Acceso directo: CTRL+q
'
Range("A1").Select
Application.Goto Reference:="FormulaOriginal"
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=+RC[-8]+RC[-7]+RC[-6]+RC[-5]+RC[-4]"
Range("A1").Select
End Sub
= = = = = = = = = =
Muchísimas gracias de antemano y perdón por las molestias.
Antonio
Fíjate si te sirve esto; (creo que hace lo que pedís ;)
Deberías agregar esto en el código tuyo
Dim vFmla As String
vFmla = "=" & Mid(Range("FormulaOriginal"), 2, Len(Range("FormulaOriginal")))
Range("A2").Select 'o donde quieras dejar el resultado
ActiveCell.Formula = vRes
'fijate que cambie FormulaR1C1 por Formula
Creo que esto lo deberías poner luego de la expresión Range("A1"). Select de tu código y eliminar el resto del código.
Cualquier cosa avisa.
Mi dirección de mail es:
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas