Macro para cortar filas según valor en celda y enviarlos a otro libro y si no se puede libro, otra hoja dentro del mismo libro.

Tengo una serie de datos en diferentes columnas a lo largo de cientos de filas.

Resulta que tengo formulado la columna F, que cuando se cumple una serie de condiciones la celda me arroja un valor que dice "finalizado", quiero construir una macro que me corte todas las filas donde en la columna F diga "finalizado" y lo envíe preferiblemente a otro libro el cual se llama "lista de finalizados", vale aclarar que sería mucho mejor que la macro primero organice alfabéticamente los valores de la columna F, así a la hora de cortar no tendrá que hacerlo por intervalos y del mismo modo no llevara mas tiempo esa acción. Si por cualquier motivo la macro no se puede conectar entre diferentes libros, pues que esta me envíe la información a otra hoja dentro del mismo libro, dicha hoja también se llamaría "lista de finalizados".

2 Respuestas

Respuesta
1

Te anexo la macro para crear un archivo nuevo

Sub Macro2()
' Por Dante Amor
' Copiar finalizados a otro libro
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja4")
    Set rango = h1.UsedRange
    ruta = l1.Path & "\"
    arch = "lista de finalizados.xlsx"
    '
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rango.Columns("F").Offset(1, 0), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange rango
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    '
    Set b = h1.Columns("F").Find("finalizado", lookat:=xlWhole)
    If Not b Is Nothing Then
        fini = b.Row
        Set b = h1.Columns("F").Find("finalizado", lookat:=xlWhole, SearchDirection:=xlPrevious)
        If Not b Is Nothing Then
            ffin = b.Row
            Set l2 = Workbooks.Add
            Set h2 = l2.Sheets(1)
            h1.Rows(fini & ":" & ffin).Copy
            h2.Range("A1").PasteSpecial xlValues
            l2.SaveAs Filename:=ruta & arch, _
                FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            l2.Close
            h1.Rows(fini & ":" & ffin).Delete
            MsgBox "Archivo de finalizados creado"
        End If
    Else
        MsgBox "No existen registros"
    End If
End Sub

Respuesta

Puedes copiar los datos a otro libro y en el otro libro cortar las celdas que necesites

Mira este ejemplo copia los datos de una hoja a otro libro

https://youtu.be/QLeNn7vREvs

https://youtu.be/CrWWGBGv2VE

https://youtu.be/6kt_idZSqAk

https://youtu.be/paVfYZlUygU 

Esto te muestra como copiar cortar pegar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas