Búsqueda del mismo valor en una sola columna, copiando a otra hoja la fila del resultado

Otra vez molestandolos, necesito ayuda para lo siguiente:

Tengo un archivo con dos hojas

Hoja 1 con datos de la columna A a la columna Z con unos 3000 registros

Necesito el código de una macro que busque un valor en una columna (siempre sera la columna A) el cual se repite un numero desconocido de ocasiones y sera de 18 dígitos, ese valor lo podría insertar con un inputbox, y que en la HOJA2 me copie el rango de la "A" a la "Z" toda la fila en las que aparezca dicho dato, de tal forma que si aparece el dato ingresado por primera vez en "A34" de la hoja 1, en la hoja 2 quede en "A2", si aparece por segunda vez en "A44" quede en "A3" de la hoja dos y asi sucesivamente, y pues cada que active la macro y cambie el valor del inputbox borre lo anterior y ponga el nuevo resultado

2 respuestas

Respuesta
1

Prueba con esta macro, solo cambia el a1 por la celda donde comiencen tus datos.

Sub copiar_repetidos()
Set datos = Range("a1").CurrentRegion
Set h2 = Worksheets("hoja2")
h2.UsedRange.Clear
With datos
    Set datos = .Rows(2).Resize(.Rows.Count - 1, .Columns.Count)
    .Sort key1:=Range(.Columns(1).Address), order1:=xlAscending
    codigo = InputBox("Teclea el codigo a buscar", "AVISO")
    If codigo = Empty Then End
    cuenta = WorksheetFunction.CountIf(.Columns(1), codigo)
    fila = WorksheetFunction.Match(codigo, .Columns(1), 0)
    Set origen = .Rows(fila).Resize(cuenta, .Columns.Count)
    With h2.Range("a1").Resize(cuenta, .Columns.Count)
        .Value = origen.Value
        .EntireColumn.AutoFit
    End With
End With
End Sub

Muchas gracias por la respuesta, pero no me funciona la macro, pondré unas imágenes a ver si logro explicarme mejor

La idea es la siguiente

Dentro de mi "Hoja1" tengo una serie de registros que tienen datos de la columna A a la Z

Necesito que al definir el dato (puede ser en un inputbox) haga una búsqueda en la columna A de la hoja 1, que al encontrar el dato copie la fila donde encontró el dato y la pegue en la hoja dos en la fila 1, que siga buscando hacia abajo buscando el mismo valor hasta volverlo a encontrar y si lo vuelve a encontrar que copie la fila en la fila 2 de la hoja dos y así sucesivamente hasta agotar las filas con datos iguales al buscado, y que cada que ejecute primero borre los datos de la hoja 2

(Nota ambas hojas tienen el mismo encabezado )

De antemano muchas gracias

Checa entonces esta macro filtra todos los códigos iguales al inputbox y los copia a la hoja 2

Sub copiar()
Set datos = Range("a1").CurrentRegion
Worksheets("hoja2").UsedRange.Clear
With datos
codigo = InputBox("Teclee el codigo a copiar")
If codigo = Empty Then End
    .AutoFilter
    On Error Resume Next
    .AutoFilter Field:=1, Criteria1:=codigo
    If Err.Number > 0 Then MsgBox ("no existe este codigo"), vbInformation, "AVISO": End
    On Error GoTo 0
    .SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets("hoja2").Range("A1")
    .AutoFilter
End With
End Sub
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas