Guardar documentos de acuerdo a un texto variable

Antes que nada nuevamente gracias por tu apoyo en la macro de envío de correos.

Quisiera pedir tu apoyo de nuevo, tengo el siguiente problema:

Necesito generar documentos personalizados vía Word y Excel por medio de correspondencia, ahí va todo bien, mi duda es la siguiente.

¿Existira algun metodo para que al momento de terminar la conbinacion de correspondencia se puedan guardar todos los documentos de forma individual pero con un nombre en especifico?, supongamos que en el documento viene el nombre completo, este seria el campo para generar el documento y guardarlo conforme a esta variable (nombre), ejemplo: eduardo1.doc, Dam1.doc

1 respuesta

Respuesta
6

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

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.

Te anexo mi archivo de word y mi archivo de excel con la macro:

https://www.dropbox.com/s/mnimgjlkmyy66i7/plantilla1.dotx?dl=0 

https://www.dropbox.com/s/abfjz0wz8wg1skb/correspondencia%20con%20word.xlsm?dl=0 


Saludos. Dante Amor

Muchas gracias Dante, realice los pasos que me mencionaste y todo funciona bien, el problema es que tengo una columna la cual contiene valores tipo moneda, pero al pasar estas cantidades a word no las pasa correctamente, ya intente con {MERGEFIELD saldo \# $#.0,0} (el signo $ representa la moneda de mi país México) y los datos no los vincula, se pasa exactamente de esta manera {MERGEFIELD saldo \# $#.0,0} ya creadas las cartas individuales abro una y tengo que dar clic derecho sobre este campo le doy actualizar campo, despues las teclas ALT+F9 y ya aparece la cantidad en moneda, ¿A que crees que se deba?

Ya intente con Office 2013 y Office 2010.

Nuevamente gracias por tu tiempo y tu valiosa ayuda

Pasa la columna del importe a otra columna.

Suponiendo que tu columna con importes sea la columna C, en la nueva columna pon una fórmula así:

=TEXTO(C3," $#.0")

Copia esta fórmula hasta el final de tus datos.

Ahora, la columna que vas a combinar es la nueva columna que creaste.

¡Gracias! 

De verdad mis respetos Maestro muchísimas gracias por tu apoyo no se como agradecértelo muy pocas personas ayudan a las demás sin conocerlas gracias nuevamente!!! en verdad jamas habría podido hacer esto sin tu valiosa ayuda 

Una pregunta más Dante, disculpa mi insistencia, ¿Cómo puedo hacer para que los documentos generados me los guarde en una ruta especifica?.

Muchas gracias

Cambia esta línea

objWord.ActiveDocument.SaveAs Cells(i, "A").Value

Por esta

objWord.ActiveDocument.SaveAs "c:\trabajo\varios\" & Cells(i, "A").Value

Cambia "c:\trabajo\varios\", por la ruta que desees.

¡Gracias!

Nuevamente Gracias por tu apoyo funciona a la perfección :)

Hola Dante, nuevamente pidiendo tu apoyo:

Todo funciona a la perfecccion, tengo una pregunta:

¿Existe algún modo el cual al momento de ir generando los documentos individuales, estos documentos se guarden en ves de documento en Word se puedan guardar en PDF?

Gracias y saludos

Eduardo Cruz

Hola Dante, nuevamente pidiendo tu apoyo:

Todo funciona a la perfecccion, tengo una pregunta:

¿Existe algún modo el cual al momento de ir generando los documentos individuales, estos documentos se guarden en ves de documento en Word se puedan guardar en PDF?

Gracias y saludos

Tendría que investigarlo, crea un nueva pregunta para revisarlo

¡Gracias! Ya realice una pregunta respecto al ultimo punto, Muchas gracias por tu gran ayuda, saludos

Para cambiar datos en el encabezado revisar este enlace:

Macro que exporta datos de excel a word

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas