Marco automático que corte una fila a otra hoja dependiendo del valor seleccionado en una celda.

Necesito por favor su ayuda con una macro, tengo una una hoja 1 de calculo con varios datos que se va alimentando, me gustaría que me busque o al momento de seleccionar la palabra Cerrado en l columna E, corte toda esa fila y las vaya pegando en la hoja 3 a partir de la fila 2 en el orden que las encuentre y así vaya creado otra base de datos solo con los cerrados.

Quedo muy agradecida con la ayuda que me puedan brindar. Feliz día

Respuesta
2

Te anexo la macro para copiar de la hoja1 a la hoja3

Sub Borrar_Filas()
'Por Dante Amor
    Application.ScreenUpdating = False
    '
    Set h1 = Sheets("Hoja1")
    Set h3 = Sheets("Hoja3")
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    h1.Range("A1").CurrentRegion.AutoFilter Field:=5, Criteria1:="Cerrado"
    u1 = h1.Range("E" & Rows.Count).End(xlUp).Row
    If u1 > 1 Then
        h1.Rows("2:" & u1).Copy
        u3 = h3.Range("E" & Rows.Count).End(xlUp).Row + 1
        h3.Range("A" & u3).PasteSpecial xlValues
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        For i = h1.Range("E" & Rows.Count).End(xlUp).Row To 2 Step -1
            If h1.Cells(i, "E").Value = "Cerrado" Then
                h1.Rows(i).Delete
            End If
        Next
        msj = "Registros copiados y borrados"
    Else
        msj = "No existen registros a copiar"
    End If
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.ScreenUpdating = True
    MsgBox msj
End Sub

.

.

¡Gracias! Es perfecto!

Hola Dante

Se me esta presentado un problema con el archivo debo escribirte por aquí o poner un nuevo tema?

Me arroja un error al ejecutarlo, quedo muy atenta a tu respuesta feliz día

Puedes revisar si en la palabra "Cerrado" no existen espacios antes o después de la palabra.

Hola

Dante ya verifique, no hay espacio adelante, ni atrás.

Gracias

Me puedes enviar tu archivo para revisarlo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Maria Fernanda”

En tu pregunta original mencionaste que la palabra "cerrado" está en la columna "E"

Me gustaría que me busque o al momento de seleccionar la palabra Cerrado en l columna E

Pero en tu archivo viene en la columna "H"

Entonces la macro debe ser así:

Sub Borrar_Filas()
'Por Dante Amor
    Application.ScreenUpdating = False
    '
    Set h1 = Sheets("Hoja1")
    Set h3 = Sheets("Hoja3")
    col = "H"
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    h1.Range("A1").CurrentRegion.AutoFilter Field:=Columns(col).Column, Criteria1:="Cerrado"
    u1 = h1.Range(col & Rows.Count).End(xlUp).Row
    If u1 > 1 Then
        h1.Rows("2:" & u1).Copy
        u3 = h3.Range(col & Rows.Count).End(xlUp).Row + 1
        h3.Range("A" & u3).PasteSpecial xlValues
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        For i = h1.Range(col & Rows.Count).End(xlUp).Row To 2 Step -1
            If h1.Cells(i, col).Value = "Cerrado" Then
                h1.Rows(i).Delete
            End If
        Next
        msj = "Registros copiados y borrados"
    Else
        msj = "No existen registros a copiar"
    End If
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.ScreenUpdating = True
    MsgBox msj
End Sub


Importante: La hoja3 debe tener las mismas columnas que la hoja1

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas