Referencia de fórmula con nombre de libro variable

Para Dante Amor:

Hola Dante: tengo una macro que debe hacer una fórmula con los datos de otro libro. Ese otro libro tiene nombre dinámico y siempre estará abierto al momento de la macro calcular la fórmula. Estoy utilizando la siguiente instrucción:

otro_libro = Range("InstruccionesCumplimiento")
Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-3],'[ " & otro_libro & "]Hoja1'!R1C3:R666C6,4,FALSE)"

El rango "InstruccionesCumplimiento" está en la celda D4 y contiene la siguiente fórmula que genera el nombre del archivo. La fórmula es la siguiente:

="Instrucciones Cumplimiento "&TEXTO(HOY,"DD-MM-YYYY")&".xlsb"

Me queda el nombre Instrucciones Cumplimiento 28-12-2015.xlsb (ese es el nombre del libro que está abierto en el que se tienen los datos para hacer referencia a la fórmula)

Pero cuando llega a la fórmula me pide abrir o actualizar el archivo y se abre una venta.

¿Qué debo cambiarle a la instrucción para que la macro siga corriendo normalmente y me ponga el resultado de la fórmula donde la necesito?

1 Respuesta

Respuesta
1

H o l a:

Dime la siguiente información:

- ¿Qué versión de excel tienes?

- ¿La versión la tienes en español?


Existen varios detalles a corregir.

1. En tu fórmula de la celda D4 tienes esto:

="Instrucciones Cumplimiento "&TEXTO(HOY,"DD-MM-YYYY")&".xlsb"

Te faltan los paréntesis después de HOY( )


2. En el formato tienes YYYY y debe ser AAAA:

="Instrucciones Cumplimiento "&TEXTO(HOY(),"DD-MM-AAAA")&".xlsb"

3. El resultado de la fórmula es:

                     Instrucciones Cumplimiento 02-02-2016.xlsb

Es decir, la fecha de hoy() es 2 de febrero de 2016 y tu archivo que tienes abierto, según tu comentario, es Instrucciones Cumplimiento 28-12-2015.xlsb

2 de febrero de 2016 no es igual a 28 de diciembre de 2015

Entonces si el archivo que tienes abierto no es igual a esto:

                   Instrucciones Cumplimiento 02-02-2016.xlsb

Cuando ejecutes la macro te va a aparecer la ventana para que selecciones un libro.

Si no existe el libro: "Instrucciones Cumplimiento 02-02-2016.xlsb" entonces, primero debes crear el libro.


4. En la macro tienes un espacio después del corchete que abre:

,'[ " 

Debe ser sin el espacio entre el corchete y las comillas:

'["

Quedaría así:

ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-3],'[" & otro_libro & "]Hoja1'!R1C3:R666C6,4,FALSE)"

Realiza las correcciones, yo ya las probé y funciona bien todo bien; avísame del resultado de tus pruebas.



':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

¡Gracias! Hola Dante Amor. Eres el mejor. Me funcionó perfecto quitándole el espacio entre el corchete y las comillas. Ese espacio me estaba poniendo ese problema. En cuanto a donde dice HOY me faltó más contextualización. Eso es un nombre de rango que contiene una fecha que no necesariamente es la fecha actual sino la fecha que se está procesando (que puede ser una fecha pasada). Con el formato YYYY me ha funcionado para las demás macros.

Mil gracias nuevamente. Mis respetos para tí.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas