Macro para buscar en otro libro

Hice una macro que busca el numero de cliente en otro libro que tiene los datos de ese cliente. La macro funciona solamente abriendo el libro en cuestión. Quisiera saber si existe una función o un código para que pueda funcionar sin que tenga que abrir el libro.

Anexo mi macro.

Sub RFC()
'
' RFC Macro
'
'
Dim UltimaFila As Integer, x As Integer
Let UltimaFila = Cells(Rows.Count, 2).End(xlUp).Row
    ActiveCell.FormulaR1C1 = _
        "=+VLOOKUP(RC[-11],'CLIENTES NADRO.xlsx'!ClientesFanasa[[NUMERO FARMACIA]:[RFC]],16,0)"
    Range(ActiveCell, Cells(ActiveCell.Row, ActiveCell.Column)).Select
    Selection.AutoFill Destination:=Range(ActiveCell, "Q" & UltimaFila)
    Range(ActiveCell, "Q" & UltimaFila).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

1 respuesta

Respuesta
1

[Hola

Necesariamente tiene que estar abierto el libro, no hay forma de evitar eso pero, si podrías abrirlo y cerrarlo sin que eso se vea:

Sub RFC()
'
' RFC Macro
'
Dim UltimaFila As Integer, x As Integer
Let UltimaFila = Cells(Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False
Workbooks.Open ("D:\Carpeta\Sub_Carpeta\CLIENTES NADRO.xlsx")
ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-11],'CLIENTES NADRO.xlsx'!ClientesFanasa[[NUMERO FARMACIA]:[RFC]],16,0)"
Range(ActiveCell, Cells(ActiveCell.Row, ActiveCell.Column)).AutoFill Destination:=Range(ActiveCell, "Q" & UltimaFila)
Range(ActiveCell, "Q" & UltimaFila).Copy
Range(ActiveCell, "Q" & UltimaFila).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Workbooks("CLIENTES NADRO.xlsx").Close False
Application.ScreenUpdating = True
End Sub

Comentas

Abraham Valencia

Hola, 
muchas gracias por tu respuesta. Traté de poner el código en práctica y funcionó una vez... después me marca error 1004 en tiempo de ejecución: Error definido por la aplicación o el objeto.

Tengo varias macros que programé siguiendo la misma lógica, solo cambiando el nombre de los archivos y las columnas y en todas me aparece lo mismo. 

¿Sabes cómo podría corregirlo?

Te agradezco de antemano.  

[Hola nuevamente

Si se va a usar macros el ideal es, no solo copiar/pegar/reemplazar, sino sobre todo entender que hace cada línea.

Tú en esa macro estás insertando la fórmula en la celda activa (qué no sé en que momento activas y por ende no sé cuál es) pero debes tener en cuenta que la línea dará error si la celda activa está en cualquier celda de entre las columnas A y K.

Sugiero lees esto:

https://abrahamexcel.blogspot.com/2018/11/insertar-formulas-con-macros.html 

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas