MACRO buscar dato de una celda en otra archivo de excel y copiar un dato al costado de la celda seleccionada

Quisiera una MACRO parecida al buscador de palabras del excel, la diferencia es que no digite el dato sino que solo este ubicado en la celda, te anexo como hago dicha busqueda en los archivos de excel presentando los dos archivos de excel simultaneamente, el archivo DATOS1 es mi excel de trabajo, que necesito cruzar en el archivo DATOS2 (algo asi como una base de datos).

Entonces me ubico en la celda "C2" de "DATOS1.XLS" (pintado de "amarillo") y desde alli ejecuto la MACROS y me tiene que llevar a la celda "C8" de "DATOS2.XLS" (pintado de "verde")

ya una vez encontrado esos dos datos iguales osea "C2" = "C8" = "117"

Necesito copiar el PROVEEDOR del archivo "DATOS2.XLS" a mi archivo "DATOS1.XLS" en la celda "D2".

Esta operacion la tengo que realizar uno a uno osea solo funcione la macros en la celda seleccionada como en este caso la MACRO funciona solo para la celda "C2" de "DATOS1.XLS". Con esto me ahorro estar digitando el dato a buscar.

1 Respuesta

Respuesta
1

No pusiste los libros, prueba poniendo la macro en los eventos de tu hoja del libro datos1, los 2 libros los deberás tener abiertos. Tampoco indicaste en qué columna está el proveedor.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Set h2 = Workbooks("datos2.xlsx").Sheets("Hoja1")
        Set b = h2.Range("C:C").Find(Target.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(Target.Row, "D") = h2.Cells(b.Row, "D")
        End If
    End If
End Sub

Si tienes problemas para adaptar la macro, envíame tus 2 archivos.

Hola aquí esta la imagen del libro, te envío empaquetado los dos archivos de excel

Muchas gracias, JOHNMOR41

No me han llegado los archivos, pero prueba la macro.

Cambia en la macro esto:

Cells(Target.Row, "D") = h2.Cells(b.Row, "D")

Por esto

Cells(Target.Row, "D") = h2.Cells(b.Row, "E")


Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Te envío la macro completa

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        With Range("C:D").Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Set h2 = Workbooks("datos2.xls").Sheets("Hoja1")
        Set b = h2.Range("C:C").Find(Target.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Target.Interior.ColorIndex = 6
            h2.Activate
            With h2.Range("C:E").Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            b.Select
            h2.Range("C" & b.Row, "E" & b.Row).Interior.ColorIndex = 4
            Cells(Target.Row, "D") = h2.Cells(b.Row, "E")
            ThisWorkbook.Activate
        End If
    End If
End Sub

¡Gracias! Excelente, has leído mi pensamiento y lo has mejorado, eres un genio, muchas gracias

Saludos JOHNMOR41, LIMA PERÚ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas