Llenar datos plantilla pdf o guardar automáticamente plantilla dotx o alguna alternativa

Para @Dante Amor

Buenos dias comunidad...

A ver si me pueden ayudar con este desafio, necesito rellenar informacion de unos contratos desde excel (vb), en este minuto lo hago sin problemas hacia una plantilla de word (archivo dotx). En donde se abre la plantilla, se cargan los datos y ahí queda, listo para guardar o modificar si así lo quisiera. Mi consulta en concreto es:

- ¿Se puede automatizar aun más la operacion?

- Que junto con generar el archivo y rellenar los datos, ¿el archivo se guarde automaticamente?

- ¿Alguna posibilidad de guardarlo en pdf?

- O quizas, ¿rellenar alguna plantilla PDF?

En resumen, quiero ver la posibilidad de agilizar la operacion de generar los contratos, si me pudieran ayudar..

1 Respuesta

Respuesta
1

H o l a:

Este sería un método o una forma de combinar "correspondencia" de excel con word a través de una macro.

Esta macro crea los documentos de word pero no utiliza propiamente la correspondencia de word, lo que hace, es tomar tu documento de word y crear un documento por cada nombre que tengas en tu lista de excel.

Sigue los siguientes pasos:

1. Crear tu lista en excel, de la siguiente forma:

Lo importante es que los encabezados pongas una referencia que es la que vamos a buscar en word, yo puse [reemp_nombre]  [reemp_telefono]    [reemp_estado].


2. Ahora crea tu documento word, de la siguiente forma:

En tu documento, ahora vas a poner los encabezados de excel, en el lugar que desees.


3. Ya que tienes tu documento word terminado, guárdalo pero como plantilla de word y guárdala en la misma carpeta donde tienes tu archivo de excel.

En este ejemplo yo guardé mi archivo con el nombre de "plantilla1"


4. En tu archivo de excel pon la siguiente macro, en esta línea de la macro debes poner el nombre de tu plantilla word, recuerda que en mi ejemplo guardé la plantilla como "plantilla1":

patharch = ThisWorkbook.Path & "\plantilla1.dotx"

Sub CorrespondenciaConWord()
'Por.Dante Amor
    '
    patharch = ThisWorkbook.Path & "\plantilla1.dotx"
    '
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objWord.documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
        '
        For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
            textobuscar = Cells(1, j)
            objWord.Selection.Move 6, -1
            objWord.Selection.Find.Execute FindText:=textobuscar
            '
            While objWord.Selection.Find.found = True
                objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
                objWord.Selection.Move 6, -1
                objWord.Selection.Find.Execute FindText:=textobuscar
            Wend
            '
        Next
        '
        ObjWord. Activate
        ObjWord. ActiveDocument.SaveAs Cells(i, "A").Value
        ObjWord. ActiveDocument. Close
ObjWord. Quit
    Next
End Sub

5. 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: CorrespondenciaConWord
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

En el siguiente enlace puedes ver la información a la respuesta:

Guardar documentos de acuerdo a un texto variable


Revisa si es lo que necesitas y me comentas si hay que cambiar algo.


En la siguiente macro puedes ver la instrucción para guardar el word como PDF:

Sub CorrespondenciaConWord()
'Por.Dante Amor
    '
    patharch = ThisWorkbook.Path & "\plantilla1.dotx"
    '
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
        '
        For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
            textobuscar = Cells(1, j)
            objWord.Selection.Move 6, -1
            objWord.Selection.Find.Execute FindText:=textobuscar
            '
            While objWord.Selection.Find.found = True
                objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
                objWord.Selection.Move 6, -1
                objWord.Selection.Find.Execute FindText:=textobuscar
            Wend
            '
        Next
        '
        ruta = ThisWorkbook.Path & "\"
        nombd = ruta & Cells(i, "A") & ".docx"
        nombp = ruta & Cells(i, "A") & ".pdf"
        objWord.ActiveDocument.SaveAs nombd
        pdf = objWord.ActiveDocument.ExportAsFixedFormat( _
            nombp, 17, False, 0, 0, , , 0, False, True, 1)
        objWord.Quit (False)
    Next
End Sub

Referencia: Guardar Documentos de Word a PDF con Macro 


Maestro... Como siempre todo funcionando al 100%... Excelente apoyo, muchas gracias por el tiempo y dedicación... Muchas gracias desde Chile y un abrazo (Y)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas