Macro Excel para filtrar y trasladar tabla a otro libro

Estoy trabajando en una tabla que se encuentra en el rango A18:R5000 y necesitaría ayuda para realizar una macro que me permita filtrar los valores de la columna F (los encabezados de las columnas se encuentran en la fila 18) y luego copiar y pegar la tabla ya filtrada a un nuevo libro excel sin dañar ciertas formulas condicionales.

La columna F se refiere a nombre de países, por lo que la macro debería ir filtrando por cada uno de los países y luego guardar el nuevo libro excel con el nombre de dicho país.

1 Respuesta

Respuesta
1

Prueba con la siguiente macro. No sé exactamente a qué te refieres con "ciertas formulas condicionales"; estoy copiando toda las celdas pero revisa si es lo que requieres.

Sub Filtar_Trasladar()
'
' Por Dante Amor
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set h1 = Sheets("Hoja3")
    Set h2 = Sheets("temp")
    h2.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u1 = h1.Range("F" & Rows.Count).End(xlUp).Row
    h1.Range("F18:F" & u1).Copy h2.Range("A1")
    u2 = h2.Range("a" & Rows.Count).End(xlUp).Row
    h2.Range("A1:A" & u2).RemoveDuplicates Columns:=1, Header:=xlYes
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    ruta = ThisWorkbook.Path & "\"
    For i = 2 To u2
        pais = h2.Cells(i, "A").Value
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        h1.Range("A18:R" & u1).AutoFilter Field:=6, Criteria1:=pais
        u1 = h1.Range("F" & Rows.Count).End(xlUp).Row
        Set l2 = Workbooks.Add
        Set h22 = l2.Sheets(1)
        h1.Range("A1:R" & u1).Copy h22.Range("A1")
        l2.SaveAs Filename:=ruta & pais & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        l2.Close False
    Next
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola DanteAmor, muchas gracias por tu respuesta!

Probé la macro y me aparece un cartel de error, el cual dice "Subíndice fuera del intervalo". ¿Me podrías ayudar a descifrar a qué se debe dicho error?

Muchas gracias

Perdona, no te puse las indicaciones.

Tienes que cambiar en la macro "Hoja3" por el nombre de tu hoja. Además debes crear una hoja y le pones por nombre "temp"

[R ecuerda cambiar la valoración a la respuesta]

.

¡Gracias! 

Al final de mi respuesta hay un botón para valorar la respuesta con las opciones: "Votar" y "Excelente", si ya no tienes más dudas apreciaría que cambiaras la valoración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas