Macro para buscar filas y pegarlas en otra hoja

Hola experto!, te agradezco de antemano por la ayuda en interés.
Mi consulta es la siguiente:
Tengo una planilla en la Hoja2 con 13 columnas, donde cada fila es el registro de la entrega de un elemento de seguridad (casco, ropa, etc) a un trabajador. Las columnas son por ejemplo:
RUT/Nombre/Area/elemento/valor/.....Fecha de Entrega/Año.....etc
Lo que quiero es una macro que pida al usuario ingresar el año que desea consultar, con este dato, buscar todas las filas que tengan ese año en la Columna Año y luego copie y pegue todos esos datos en forma ordenada en la Hoja3, donde previamente en la fila 1 estarán los nombres de las columnas(los mismos que en la Hoja 2). Un detalle, que al pegar los datos, siempre sea a partir de la celda A2, para que en el caso de que hayan datos anteriormente, se reemplacen por los nuevos; o no sé si hay otra forma más técnica de limpiar la hoja 3 antes (excluyendo la fila 1 de encabezados)
Los botones los pondré en la Hoja 1 que será el "panel de control"
Muchas gracias!

1 Respuesta

Respuesta
1
Hazlo con un bucle...
Puedes hacerlo con con "For... Next", "While... Wend" o "Do Until... Loop". Te pondré un ejemplo donde utilizaremos While Wend.
Sub MyMacro()
Sheets("Hoja3").Select
Range("a1:n100").ClearContents
Sheets("hoja2").Select
Range("a1:n100").Copy
Sheets("hoja3").Select
Range("a1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("a1").Select
Dato = Worksheets("hoja1").Range("a1").Value
Range("f2").Select
While ActiveCell.Value <> ""
If ActiveCell.Value <> Dato Then
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
End If
ActiveCell.Offset(1, 0).Select
Wend
Range("a1").Select
End Sub
En este caso el año se encuentra en la columna f.
Nota: Todas los registros deben de tener año, si el bucle encuentra un registro de ño vacía termina el proceso. donde dice...While <> ""

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas