Buscarv abriendo un archivo (Macros Excel)

Lo que pasa es que estoy haciendo una macro donde utilizo buscarv, sin embargo el archivo donde busca los datos no es constante, siempre va cambiar. Aquí te envío el código que llevo, sin embargo no me actualiza los datos cuando abro un archivo. Muchas Gracias
Sub AbrirArchivoPuc() 
    Dim stArchivoElegido As Variant 
'Continua la macro aún si un error ocurre 
    On Error Resume Next 
'Abre la ventana para buscar el archivo 
    stArchivoElegido = Application.GetOpenFilename("Hoja Excel , *.xls*", _ 
    , "INGRESE SU ARCHIVO DEL PUC PARA INICIAR") 
'Prueba si la variable es válida para abrir el archivo 
If stArchivoElegido = False Then 
    MsgBox "Por Favor elija su archivo del PUC para continuar" 
Else 
'Abre el archivo y copia los datos en la hoja PUC 
    Workbooks.Open stArchivoElegido 
    Windows("Indicadores Avicola Tila Macro Final.xlsm").Activate 
    Sheets("PUC").Visible = True 
    Sheets("PUC").Activate 
    Range("C6").Select 
    ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[stArchivoElegido]Hoja1!R1C1:R1378C3,3,0)" 
    Range("C8:C10").Select 
    ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[stArchivoElegido]Hoja1!R1C1:R1378C3,3,0)" 
End if

1 respuesta

Respuesta
1
Agregue un comando para saber el Nombre de la hoja el cual tiene que ir en la fórmula, no como ruta.
Sub AbrirArchivoPuc()
    Dim stArchivoElegido As Variant
'Continua la macro aún si un error ocurre
    On Error Resume Next
'Abre la ventana para buscar el archivo
    stArchivoElegido = Application.GetOpenFilename("Hoja Excel , *.xls*", _
    , "INGRESE SU ARCHIVO DEL PUC PARA INICIAR")
'Prueba si la variable es válida para abrir el archivo
If stArchivoElegido = False Then
    MsgBox "Por Favor elija su archivo del PUC para continuar"
Else
'Abre el archivo y copia los datos en la hoja PUC
    Workbooks.Open stArchivoElegido
    '**** Agrega Esto Para Saber El Nombre De La Hoja
    StrNombre = ActiveWorkbook.Name
    '****
    Windows("Indicadores Avicola Tila Macro Final.xlsm").Activate
    Sheets("PUC").Visible = True
    Sheets("PUC").Activate
    Range("C6").Select
    '**** De Este Modo te Agrega En La Funcion Buscarv, el Nombre Del Archivo Elegido
    ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[" & StrNombre & "]Hoja1!R1C1:R1378C3,3,0)"
    Range("C8:C10").Select
    ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[" & StrNombre & "]Hoja1!R1C1:R1378C3,3,0)"
'****
End If
End Sub
Suerte
Pitcher !
Hola muchas gracias por tu respuesta, pero imaginate que nada que me sirve, sigue sin actualizar los datos :(
Con el código que te envíe solo solucione el problema que tenias con la fórmula. Ahora te envío el código el cual actualiza las coordenadas de búsqueda. Sabiendo si en la columna C del archivo a buscar se han agregado filas. Pruébalo.
Sub AbrirArchivoPuc()
    Dim stArchivoElegido As Variant
'Continua la macro aún si un error ocurre
    On Error Resume Next
'Abre la ventana para buscar el archivo
    stArchivoElegido = Application.GetOpenFilename("Hoja Excel , *.xls*", _
    , "INGRESE SU ARCHIVO DEL PUC PARA INICIAR")
'Prueba si la variable es válida para abrir el archivo
    If stArchivoElegido = False Then
        MsgBox "Por Favor elija su archivo del PUC para continuar"
    Else
    'Abre el archivo y copia los datos en la hoja PUC
        Workbooks.Open stArchivoElegido
        '******** Tomamos el Ultimo Registro Para La Formula
        UltimoRegistro = Range("C1").End(xlDown).Row
        '******** **********************************
        '**** Agrega Esto Para Saber El Nombre De La Hoja
        StrNombre = ActiveWorkbook.Name
        '****
        Windows("Indicadores Avicola Tila Macro Final.xlsm").Activate
        Sheets("PUC").Visible = True
        Sheets("PUC").Activate
        Range("C6").Select
        '**** De Este Modo te Agrega En La Función Buscarv, el Nombre Del Archivo Elegido Ademas el Ultimo Registro
            ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[" & StrNombre & "]Hoja1!R1C1:R" & UltimoRegistro & "C3,3,0)"
            Range("C8:C10").Select
            ActiveCell.FormulaR1C1 = "=+VLOOKUP(PUC!R[0]C[-2],[" & StrNombre & "]Hoja1!R1C1:R" & UltimoRegistro & "C3,3,0)"
        '****
    End If
End Sub
Cualquier consulta no dudes en preguntar.
Suerte
Pitcher !

Y no olvides cerrar la pregunta si la respuesta fue de tu ayuda.
Hola! Perdón por molestar tanto, pero intenté con el código que me enviaste y es aún peor porque no hace nada. Pongo a correr la macro y simplemente deja los valores que tenía antes, entonces borré los valores para ver que pasaba y lo que hace es dejar las celdas en blanco... Ayudame por favor que me tiene cansada esta macro
Gracias
Envíame los Archivo a [email protected] y con gusto te ayudare.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas