¿Cómo paso un numero determinado de filas que cumplan una condición a otra hoja del mismo libro?

Quiero que ciertas celdas de una fila que cumplan una condición se añadan en otra hoja del mismo libro, y no se si es posible que se ordenen de menor a mayor.

Gracias.

1 Respuesta

Respuesta
1

Claro que es posible. Descríbeme mejor tu caso y te diseño la macro que lo hace.

Me alegra esa determinación. Haber si consigo explicarme bien.

Yo por ejemplo tengo de la A1 hasta F1 un valor en cada celda y en la G1 hago la suma total de estos valores, entonces lo que quiero es que si el total cumple con la condición, por ejemplo si el total es 30 y es lo que quiero, me pase las celdas desde la A1 hasta la F1 a otra hoja, pero en esa misma hoja van a coexistir mas totales, como el 30, el 60, el 90, por eso comentaba lo de ordenarlo de menor a mayor sin pisar anteriores resultados.

No se si me he explicado bien. No voy a poder hacer aclaraciones hasta mañana.

Un saludo.

Aquí tienes la macro que lo hace: Pon los números como has comentado, es decir, desde A2 a F2 y en la G2 la suma de la fila (en la fila 1 tendremos los encabezados). Supongo que tendremos más datos hacia abajo. Ahora ponte en A2 y ejecuta esta macro: Te copiará solo las filas que suman 30 a la pestaña "hoja2"

Sub copiafilas()

Do While ActiveCell.Value <> ""

If ActiveCell.Offset(0, 5).Value = 30

ThenRange(ActiveCell, ActiveCell.Offset(0, 5)).Copy

filalibre = Sheets("hoja2").Range("a10000").End(xlUp).Row + 1

Sheets("hoja2").Cells(filalibre, 1).PasteSpecial Paste:=xlValues

End If

ActiveCell.Offset(1, 0).Select
Loop

End Sub

No olvides finalizar y puntuar la consulta

Hola, gracias de antemano, pero necesito un pequeño detalle más, me ha dado un error de compilación en el primer Then y lo he separado del Range, pero me sigue dando un error de compilación y esto me sobrepasa, podrías indicarme un poco mas.

Gracias.

Al copiar la macro se ha pegado mal en la web. Ahora está bien:

(Recuerda finalizar y puntuar, un saludo)

Sub copiafilas()
Do While ActiveCell.Value <> ""
If ActiveCell.Offset(0, 5).Value = 30 Then

Range(ActiveCell, ActiveCell.Offset(0, 5)).Copy
filalibre = Sheets("hoja2").Range("a10000").End(xlUp).Row + 1
Sheets("hoja2").Cells(filalibre, 1).PasteSpecial Paste:=xlValues
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

No consigo ver el resultado, no entiendo mucho de macros y es posible que lo este ejecutando mal, tengo que ponerme sobre la celda y pulsar grabar macro, despues detener y ejecutar?

Correcto, te tienes que posicionar en la celda A2, lo he dicho en mi primer post. Una vez situado en esa celda tienes que ejecutar la macro. Léete mi segundo post.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas