Macro Excel 2007 para cortar las filas coloreadas y pegarlas en otra hoja.

Hola, necesito que me colaboren con un Macro para Excel 2007 que "Corte" las filas coloreadas y las "Pegue" en una nueva hoja (a ser creada en el Macro). Líneas abajo las Imágenes:
Original en Hoja1:

Resultado en Hoja1:

Resultado en "HojaCreada":

Nótese que al cortar las filas de color rojo de la Hoja1 las demás filas se ordenan (no quedan filas vacías), asimismo, en la "HojaCreada" se pegan las filas manteniendo su color y orden, de la misma manera, también se copian los Títulos (manteniendo el formato de los mismos).
Si fuese muy complicado de hacer el mantener los colores en la "HojaCreada" se podría obviar, sin embargo, sería lo ideal que se muestre con los formatos.

Aclaro que necesito la solución mediante un Macro.

Gracias de antemano por su ayuda.

1 respuesta

Respuesta
1

Me puedes comentar lo siguiente:

¿El color de las celdas siempre es rojo?

Está coloreada toda la fila o solamente las celdas de la A a la F

Hola, el color siempre es Rojo y lo que está coloreado solo son las celdas A a la F.

Saludos.

Sigue las instrucciones para la macro

Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: copiafilaroja
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub copiafilaroja()
'copia filas rojas en hoja nueva
'por.dam
Set h1 = Sheets("Hoja1")
Set h2 = Sheets.Add
h1.Select
ini = "A"
fin = "F"
For i = 2 To h1.Range(ini & Rows.Count).End(xlUp).Row
si = 0
    For j = 1 To Range(fin & 1).Column
        Cells(i, j).Select
        If Cells(i, j).Interior.ColorIndex = 3 Then
            si = 1
        Else
            si = 0
        End If
    Next
    If si = 1 Then
        Range(ini & i & ":" & fin & i).Select
        h1.Range(ini & i & ":" & fin & i).Copy h2.Range(ini & h2.Range(ini & Rows.Count).End(xlUp).Row + 1)
        Selection.Delete Shift:=xlUp
        i = i - 1
    End If
Next
MsgBox "Proceso terminado", vbInformation, "Copia filas rojas"
End Sub

Indicaciones:

Al color rojo le corresponde el número 3, según la paleta de colores de excel. Si escogiste otro color cercano al rojo, tal vez tengas otro número, para saber el número que tienes en la celda, puedes probar con la siguiente macro para conocer el número
Pon el cursor en una celda de color rojo
Sub numcolor()
MsgBox ActiveCell.Interior.ColorIndex
End Sub
Si el resultado es diferente a 3, entonces Presiona Alt + F11, entra a la macro que te envié, y cambia en la siguiente línea el número 3 por el número que te apareció en el mensaje.
If Cells(i, j).Interior.ColorIndex = 3 Then

Saludos. Dam
Si es lo que necesitas.

Excelente, le agregué solo dos líneas más para que me copia el título.

Realmente quedó perfecto.

Gracias y Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas