Condición para cortar y pegar en otra hoja

Pido de su ayuda con una macro que haga una búsqueda en la columna S. Si dice "EXTRAORDINARIO" y/o "Reprobado" cortar esa fila y pegarlo en la última fila disponible en mi hoja "pendientes" la hoja de buscar se llama "escuela". También quisiera de sí apoyo en ayudarme en un segundo bloque que distingue filas vacías en la misma hoja de "escuela" si existe en la columna Q alguna celda igual a cero. Cortar la celda y pegar en la última fila disponible.

1 Respuesta

Respuesta
1

Te anexo la macro para copiar, pegar y cortar. No comentaste a cuál hoja se debe ir el segundo bloque, así que también lo envié a la hoja "pendientes"

Sub CortarPendientes()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("escuela")
    Set h2 = Sheets("pendientes")
    '
    For i = h1.Range("S" & Rows.Count).End(xlUp).Row To 1 Step -1
        Select Case UCase(h1.Cells(i, "S"))
            Case "EXTRAORDINARIO", "REPROBADO"
                u = h2.Range("S" & Rows.Count).End(xlUp).Row + 1
                h1.Rows(i).Copy h2.Rows(u)
                h1.Rows(i).Delete
        End Select
    Next
    '
    For i = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row To 1 Step -1
        Select Case h1.Cells(i, "Q")
            Case "", 0
                u = h2.UsedRange.Rows(h2.UsedRange.Rows.Count).Row + 1
                h1.Rows(i).Copy h2.Rows(u)
                h1.Rows(i).Delete
        End Select
    Next
    MsgBox "Terminado", vbInformation
End Sub

Prueba y me comentas.

S a l u d o s . D a n t e   A m o r

Si es lo que necesitas.

Dante que amable por tu tiempo para contestarme y te pido una disculpa por contestar hasta ahora, pero fíjate que tengo dos situaciones:

1.- Es que tengo más datos en la hoja de pendientes, y quiero que lo coloque al final de la ultima Fila. Dado que tengo más registros. Que busque en toda la hoja sin importar espacios vacíos.

Agradezco tu apoyo y en lo que te pueda ayudar ofrezco mi apoyo incondicional

Saludos

Te anexo la macro actualizada

Sub CortarPendientes()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("escuela")
    Set h2 = Sheets("pendientes")
    '
    u = h2.UsedRange.Rows(h2.UsedRange.Rows.Count).Row + 1
    For i = h1.Range("S" & Rows.Count).End(xlUp).Row To 1 Step -1
        Select Case UCase(h1.Cells(i, "S"))
            Case "EXTRAORDINARIO", "REPROBADO"
                h1.Rows(i).Copy h2.Rows(u)
                u = u + 1
                h1.Rows(i).Delete
        End Select
    Next
    '
    u = h2.UsedRange.Rows(h2.UsedRange.Rows.Count).Row + 1
    For i = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row To 1 Step -1
        Select Case h1.Cells(i, "Q")
            Case "", 0
                h1.Rows(i).Copy h2.Rows(u)
                u = u + 1
                h1.Rows(i).Delete
        End Select
    Next
    MsgBox "Terminado", vbInformation
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas