Buscar dato en otro libro

Para Dante Amor

Cordial saludo:

Nuevamente recurriendo a tu generosidad para solicitar tu ayuda con la siguiente situación:

Tengo una macro con la cual construyo un informe partiendo de un reporte generado por otro sistema, esta parte me funciona bien, ahora necesito insertar una columna (E) para traer en ella datos contenidos en otro libro, el cual la idea es abriirlo desde la macro, la ruta donde se encuentra el libro la ingreso en la celda A9 del libro que contiene la macro, una ves se abre el libro debo buscar un código contenido dentro del reporte a partir de la celda C2, el rango es variable y que tambien se encuentra en la hoja Datos del libro que se abre, una ves lo encuentre debe traer el dato que esta en la columna J, el dato buscado esta en la columna E, el rango de busqueda es variable, lo he intentado con Buscarv, pero no he conseguido que me funcione, este es el código que estoy con el que estoy intentando.

    Dim NombreCarpeta As String
    Dim xRange As Range
    Dim libro1 As Workbook
    NombreCarpeta = Workbooks("MACROS_LABORALES.XLSM").Sheets("Principal").Range("A9")
    Workbooks.Open NombreCarpeta
Set libro1 = ActiveWorkbook
u = libro1.Sheets("Datos").Range("E" & Rows.Count).End(xlUp).Row
Set xRange = libro1.Sheets("Datos").Range("E2:J" & u)
'Esta parte de insertar la columna y la etiqueta "CARGO", funciona bien
      Windows("URNM3033.PAU").Activate
      Columns("E:E").Insert
      Range("E1") = "CARGO"
     Range("E2").Select
  With libro1.Sheets("Datos").Range("E2:J" & u)
    .Formula = "=VLOOKUP(RC[-2], xrange,7,0)"
    .Formula = .Value
  End With
     ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(RC[-2],xRange,6,0)"
    Selection.AutoFill Destination:=Range("E2:E" & fin)
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   

Agradezco de antemano su tiempo y su acostumbrada disposición de ayuda desinteresada

1 Respuesta

Respuesta
1

Una ves se abre el libro debo buscar un código contenido

Ahí me perdí.

Puedes explicarlo más despacio y con un ejemplo. Utiliza datos genéricos en tu ejemplo.

Tienes 2 libros

Por ende tienes 2 hojas

Así que explica paso a paso, libroX. HojaX. CeldaX

Tomo el dato que está en: libroY. HojaY. CeldaY y lo busco en: libroX. HojaX. ColumnaX.

Si lo encuentro, tomar el dato del libro...

Y así me lo platicas.

Sería genial si pones imágenes con datos y con esos datos explicas un ejemplo de lo que quieres.

Buenos días:

En las imágenes que adjunto explico el paso a paso de lo que necesito lograr, espero haberlo hecho de la mejor manera.

Muchas gracias por su tiempo y su disposición.

Entonces tienes 3 libros, uno con la macro, libro 2 el que abres para tomar la información y libro 3 para poner la información.

Prueba lo siguiente:

Sub Buscar_Dato_En_Otro_Libro()
'Por Dante Amor
  'Declaraciones de variables
  Dim wb3 As Workbook
  Dim sh3 As Worksheet
  Dim nombre As String
  Dim u As Long
  '
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  '
  nombre = ThisWorkbook.Sheets("Principal").Range("A9").Value
  Set wb3 = Workbooks.Open(nombre, False, True) 'De aquí se toma la información
  Set sh3 = wb3.Sheets("Datos")
  u = sh3.Range("E" & Rows.Count).End(3).Row
  '
  With Workbooks("URNM3033.PAU.xlsx").Sheets(1) 'Aquí se pone la información
    .Range("E:E").Insert
    .Range("E1").Value = "CARGO"
    With .Range("E2:E" & .Range("C" & Rows.Count).End(3).Row)
      .Formula = "=VLOOKUP(C2," & sh3.Range("E2:J" & u & "").Address(1, 1, , True) & ",6,0)"
      .Value = .Value
    End With
  End With
  wb3.Close False
  Application.ScreenUpdating = True
End Sub

¡Gracias! , ¡Excelente! como siempre sus soluciones son fenomenales...

Mil y mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas