Macro buscar y recopilar datos en Excel

Tengo un botón en una la Hoja1 de Excel e información en esta misma hoja de los rangos (A5:F100), en la columna A del rango (A1:A100) tengo un numero 0 (cero) o también el numero 1 (uno), lo que necesito es que al momento de oprimir el botón me busque y copie la información contenida en cada una de las filas con el numero 1 (uno) en el rango (A:F) y las pegue en la Hoja2 a partir del rango (A:10:F10) acumuladas hacia abajo.

2 respuestas

Respuesta
2

Te mando mi solución. Ejecuta esta macro y todo listo:

Sub prueba()
'por luismondelo
Sheets("hoja1").Select
Range("a65000").End(xlUp).Offset(1, 0).Value = "end"
Range("a1").Select
Do While ActiveCell.Value <> "end"
If ActiveCell.Value = 1 Then
ActiveCell.EntireRow.Copy
Sheets("hoja2").Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Sheets("hoja2").Select
Range("a1").Select
End Sub

no olvides finalizar la consulta

disculpa mi basta ignorancia pero igual y no me supe explicar bien. los rangos que puse en la primer pregunta eran ejemplos, pero ahora voy a tratar de ser mas conciso y explicito en lo que requiero, (con esta macro que me pasaste no ejecuto lo que deseo).

Yo tengo un botón en la Hoja4 de mi libro. en esa hoja en toda la columna C tengo un numero (solamente 0 y 1) en las siguientes columnas (D,E, F y G) tengo datos (nombres, direcciones, etc.) yo necesito que la macro busque todas las filas en la columna C que tengan el numero 1, me copie la información de esas filas hasta la columna G y los coloque en la Hoja5, a partir del rango A:24.

Antes de nada, mi respuesta es perfecta para tu primera pregunta pero ya veo que perdí el tiempo dado que la pregunta ahora resulta que era otra. En esta ocasión, para tu nueva pregunta, la macro es así:

Sub prueba()
'por luismondelo
fila =24
Sheets("hoja4").Select
Range("c65000").End(xlUp).Offset(1, 0).Value = "end"
Range("c1").Select
Do While ActiveCell.Value <> "end"
If ActiveCell.Value = 1 Then
range(ActiveCell,activecell.offset(0,4)).copy
Sheets("hoja5").cells(fila,1).PasteSpecial Paste:=xlValues
fila = fila+1
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Sheets("hoja5").Select
Range("a1").Select
End Sub

recuerda finalizar

Respuesta

Mil gracias maestro a mi si me sirvió el primero solo me falta que no seleccione la fila entera sino que seleccione la fila pero hasta la columna donde están los datos mil gracias y también excelente ese truco del "End" en la fila vacía me sorprendió lo recursivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas