Macro para separar base y guardar en pdf

Necesito su ayuda urgente o me volveré loca haciéndolo a mano.. POR FAVOR!.

Tengo una base de 12 mil registros, con 2.500 diferentes registros de clientes que están en la fila A (a partir de la A2, porque tienen encabezados) Necesito poder separar en archivos diferentes cada registro y que me queden guardados en pdf en una ruta especifica. Y que cada archivo quede guardado con el nombre de acuerdo al que se filtro.

En resumen, necesito que me cree un archivo por cliente, que mantenga el encabezado que esta desde la (A:J) y que el listado resultante me lo guarde en pdf con el numero del cliente filtrado en una ruta a especificar.

1 Respuesta

Respuesta
1

H o la: Te anexo la macro

Sub GuardarClientePdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")        'hoja con datos
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("Hoja3")
    ruta = "C:\trabajo\clientes\"   'especificar ruta
    '
    h2.Cells.Clear
    h3.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Range("A1:A" & u1).Copy h2.[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
    For i = 2 To u2
        h3.Cells.Clear
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        cliente = h2.Cells(i, "A")
        h1.Range("A1:J" & u1).AutoFilter Field:=1, Criteria1:=cliente
        h1.Range("A1:J" & u1).Copy h3.[A1]
        h3.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=ruta & cliente & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.ScreenUpdating = True
    MsgBox "Pdf generados", vbInformation, "GENERAR CLIENTES EN PDF"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas