Macro de Búsqueda

Buen día!
Quiero saber si me puedes ayudar con lo siguiente:
Trato de hacer una macro que me busque una parte del contenido de una celda del libro POR en todo el libro Y y si me lo encuentra que me copie el valor que hay en esa fila pero de la columna 2 y me lo pegue a un lado de la celda buscada del libro X. Por ejemplo:
En el Libro X tengo una lista en la columna 1:
Lista
Argentina
Perú
Brasil
Mexico
Colombia
Lo que necesito es que me busque por ejemplo "genti" de la palabra Argentina en otro libro (Y) y si lo encuentra que me ponga a un lado de la celda que tiene la palabra Argentina el valor que esta a un lado de la celda encontrada en el libro Y.
No se si me explico, cabe mencionar que en el libro Y no esta la palabra exacta "genti" puede estar por ejemplo Argentina45 por eso es que quiero buscar solo una parte que coincida.
Saludos!

1 respuesta

Respuesta
1
Estoy trabajando en tu macro, disculpa el no responder antes pero he estado en un curso y me ha absorbido la mayor parte de mi tiempo.
Ok, Gracias! No te preocupes yo espero...
Esta macro toma el valor de la celda a1 de tu hoja 1 y la busca en tu hoja 2 en el rango de a1 hasta BY60000
tu puedes modificar según lo necesites
'************Aqui comienza************
Sub buscar()
'se declaran las variables
Dim celda As String
Dim palabra As String
'
'aqui asegura que la hoja 1 (X) esté activada, ya que de aqui tomará el valor para buscar en la hoja 2 (y)
Sheets("Hoja1").Activate
'toma el valor de la celda A1 de la hoja X
palabra = Range("a1").Value
palabra = "*" & palabra & "*"
'Realiza la busqueda en la hoja2 (hoja y), en el rango de a1 hasta by 60000
With Worksheets("Hoja2").Range("a1:BY60000")
    Set c = .Find(palabra)
    If c.Value Like palabra Then
      If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            'si encuentra el valor toma la celda en donde lo encontró y se cambia a la hoja 2 (hoja Y)
            celda = c.Address
            Sheets("Hoja2").Activate
            'activa la siguiente celda donde se encontró el valor (la celda que se encuentra a la derecha )
            celda = Range(celda).Next.Activate
        Loop While Not c Is Nothing And c.Address <> firstAddress
      End If
    End If
End With
'*************aqui termina********
'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas