Macro para guardar Archivo como PDF con el Nombre de una Celda (Lista Desplegable)

Tengo una solicitud muy concreta y sé que es un poco complicada pero si alguien me puede ayudar le estaría muy agradecido.

Necesito generar unos informes para diferentes personas (80) para lo que hice un archivo de Excel que alimento con la base de datos y me genera los reportes que necesito.

El problema está en que el sistema que utilicé es que por medio de una lista desplegable cambio el nombre de cada persona, le doy a actualizar datos (Ya que hay gráficas dinámicas) y me sale la información personalizada. Pero necesito generar un PDF para cada persona y es una labor excesivamente pesada y mecánica.

Hay forma de crear una macro que me cambie el nombre de la lista desplegable (Celda B1) me dé a actualizar datos y luego me la guarde como PDF con el nombre de la celda B1?

Sé que lo que pido es nivel experto, por eso lo pido acá xD

1 respuesta

Respuesta
2

Te anexo la macro

Solamente cambia la siguiente información por tus datos:

    Set h1 = Sheets("Hoja1")         'hoja de informe
    Set h2 = Sheets("basedatos")     'hoja de base de dato
    col = "A"                           'columna donde están los nombres de todas las personas


La macro

Sub Generar_PDF()
'
' Por Dante Amor
'
'   Genera un PDF por cada registro en la base de datos
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set h1 = Sheets("Hoja1")         'hoja de informe
    Set h2 = Sheets("basedatos")     'hoja de base de dato
    col = "A"                           'columna donde están los nombres de todas las personas
    '
    ruta = ThisWorkbook.Path & "\"
    u2 = h2.Range(col & Rows.Count).End(xlUp).Row
    Set rango = h2.Range(col & "2:" & col & u2)
    For Each celda In rango
        h1.Range("B1").Value = celda.Value
        ActiveWorkbook.RefreshAll
        DoEvents
        arch = celda.Value
        h1.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=ruta & arch & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Los archivos se guardan en la misma carpeta donde tienes el archivo con la macro.

Muchísimas gracias, por el curro y tomarte el tiempo de crearla.

Disculpa que te siga molestando pero nunca he trabajado con macros y no sé ni donde pegarla ni como guardarla. Disculpa las molestias.

Realiza los siguientes pasos:

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: pinta
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas