Código VBA excel para guardar varios PDF individuales de una lista desplegable, nombre y ruta

Lo que necesito es un código de VBA excel que pase a PDF, pero mi solicitud tiene unas condiciones:

1. Que convierta a PDF.

2. Que guarde/cree varios archivos PDF´s.

Mi necesidad de varios archivos individuales de PDF es porque tengo una celda con lista desplegable; con cada dato que hay en la lista me da una informacion diferente, razon por la cual un PDF para cada dato de esta lista. (Por ejemplo en la lista desplegable tengo 5 clientes, cada vez que selecciono un cliente diferente me da sus datos; 5 archivos PDF´s).

3. Que a cada archivo PDF guardado/creado se le asigne un nombre específico.

4. Y por último que se le asigne una ruta donde se va almacenar.

1 Respuesta

Respuesta

H o l a: Te anexo la macro

Sub GuardarHojas()
'Por.Dante Amor
    Set hoja = Sheets("Hoja1")                  'hoja a guardar como pdf
    Set celda = hoja.Range("C2")                'Celda con la lista de validación
    Set rango = Sheets("Hoja2").Range("B2:B6")  'hoja y rango donde están los nombres
    ruta = "C:\trabajo\"                        'ruta para guardar los archivos
    '
    For Each nombre In rango
        celda.Value = nombre.Value
        arch = nombre.Value
        hoja.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=ruta & arch & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
    MsgBox "Archivos pdf generados", vbInformation, "GUARDAR HOJAS"
End Sub

Cambia en la macro, los nombres de las hojas, de las celdas y la ruta, en estas líneas:

    Set hoja = Sheets("Hoja1")                  'hoja a guardar como pdf
    Set celda = hoja.Range("C2")                'Celda con la lista de validación
    Set rango = Sheets("Hoja2").Range("B2:B6")  'hoja y rango donde están los nombres
    ruta = "C:\trabajo\"                        'ruta para guardar los archivos

En esta línea de la macro, tienes que poner el nombre de la hoja y el rango de celdas donde tienes los nombre que están en la lista desplegable:

Set rango = Sheets("Hoja2").Range("B2:B6")

Avísame cualquier duda que tengas.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas