Buscar toda la fila su contenido en un libro distinto y cambiar el contenido de otra celda en su misma fila

Como siempre acudiendo a tu ayuda experta; en ocasión anterior me ayudaste con una solución muy parecida a esta, la pregunta anterior fue: "Buscar una celda por contenido en un libro distinto y cambiar el contenido de otra celda en su misma fila".

Tengo dos libros dentro de una misma carpeta: C://…/Pruebas/(nombre del archivo.

Los nombres de los archivos son: Archivo1 y Archivo2.

La necesitad es casi la misma solo que esta vez necesito que la búsqueda se de en el Archivo1 en la columna F, y todas las celdas de esa columna sean buscadas en el Archivo2 en la columna B y sobre la misma fila de cada celda encontrada en el Archivo2 los datos de las columnas I y J se reemplacen por "OK".

Debo anotar que en la columna B del Archivo2 el dato que se busca del Archivo1 se repite varias veces, por lo que con la solución anterior solo se cambia la primera que encontraba, lo que me deja incompletos los cambios.

Respuesta
1

Antes de empezar a crear la macro puedes poner la información completa.

  • Nombres de libros
  • Los libros van a estar abiertos
  • nombre de la carpeta
  • nombres de las hojas de ambos libros
  • A partir de cuál fila de la columna F se va a empezar

E spero la información en ese orden.

Hola Dante.

Complemento los datos:

  • Nombres de libros: Libro donde se busca en la columna F es Archivo1. Libro donde se busca en la columna B y se reemplaza el contenido en las columnas I y J es Archivo2.
  • Los libros van a estar abiertos: El libro Archivo1 estaría abierto. El Archivo2 estaría cerrado o abierto, la verdad como quede mas fácil y rápido en la ejecución de la rutina.
  • Nombre de la carpeta: Esta en Desktop con nombre Prueba
  • Nombres de las hojas de ambos libros: Archivo1 la hoja se llama Busqueda. En el Archivo2 la hoja se llama Reemplazo.
  • A partir de cuál fila de la columna F se va a empezar: Los libros tienen titulo por lo que la búsqueda y reemplazo seria desde la fila 2.

Recuerda q los valores de busqueda se repiten varias veces en el Archivo2 por lo que los valores a reemplazar se encuentran en varias filas.

Atento a tus comentarios

H  o l a:

Pon la siguiente macro en el Archivo1.

El archivo2 deberá estar abierto.

Ejecuta la macro en el Archivo1, hoja "Busqueda".

Sub CambiarDatos()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set l2 = Workbooks("Archivo2.xlsx")
    Set h1 = l1.Sheets("Busqueda")
    Set h2 = l2.Sheets("Reemplazo")
    '
    For i = 2 To h1.Range("F" & Rows.Count).End(xlUp).Row
        Set r = h2.Columns("B")
        Set b = r.Find(h1.Cells(i, "F"), lookat:=xlWhole)
        If Not b Is Nothing Then
            ncell = b.Address
            Do
                h2.Cells(b.Row, "I") = "OK"
                h2.Cells(b.Row, "J") = "OK"
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> ncell
        End If
    Next
    MsgBox "Terminado"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas