Combinar correspondencia excel-word y enviar adjunto PDF

Me gustaría hacer lo siguiente. Tengo un excel "datos proveedor.xlsx" con datos de proveedor, email de contacto, facturación, etc. En word escribo carta "cartas.docx" combinando datos del excel "datos proveedor.xlsx". Lo que me gustaría hacer es:

- 1º: generar un fichero pdf del word "cartas.docx" por cada registro del excel combinado. Hasta ahora solo consigo generar un pdf con todos los registros combinados del fichero excel. Si no se puede generar un pdf independiente por cada registro, cómo generar un fichero word independiente por cada registro

- 2º: desde outlook, poder enviar un email con texto explicativo a cada uno de los proveedores y que vaya adjuntado el fichero pdf/docx que se genera en el punto 1

Si no me he explicado bien, comentarme las dudas.

1 Respuesta

Respuesta
1

Para generar un archivo PDF independiente por cada registro del Excel combinado en Word y enviar un correo electrónico con el archivo adjunto, puedes seguir los siguientes pasos:

  1. Abre el documento de Word "cartas.docx" y asegúrate de que la opción "Correspondencia de correo" esté habilitada. Para hacerlo, ve a la pestaña "Correspondencia" en la cinta de opciones y haz clic en "Iniciar combinación de correspondencia" > "Cartas".
  2. Selecciona la fuente de datos "datos proveedor.xlsx" y asegúrate de que las variables se inserten correctamente en la carta.
  3. En la pestaña "Correspondencia", haz clic en "Vista previa de resultados" y asegúrate de que las cartas se vean bien.
  4. Para generar un archivo PDF independiente por cada registro, en lugar de uno solo con todos los registros combinados, en la pestaña "Correspondencia", haz clic en "Editar documentos individuales".
  5. Selecciona "Todos" y haz clic en "Aceptar". Esto creará un documento de Word independiente por cada registro del Excel combinado.
  6. En la pestaña "Archivo", selecciona "Guardar como" y elige "PDF" como el formato de archivo. Guarda el archivo PDF con un nombre que incluya una variable única para cada registro, como el número de proveedor o el nombre del proveedor.
  7. Para enviar un correo electrónico con el archivo PDF adjunto, puedes utilizar una macro de VBA. En el editor de VBA, crea una nueva macro y escribe el siguiente código:

vbnetCopy code

Sub EnviarCorreo() Dim objOutlook As Object Dim objMail As Object Dim FilePath As StringDim FileName As String Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) 'Para cada registro en el Excel, haz lo siguiente: 'Cambia "Sheet1" a la hoja donde se encuentran los datos de proveedor 'Cambia "A2" a la celda donde comienzan los datos 'Cambia "Proveedor" al nombre de la columna que contiene el nombre del proveedor 'Cambia "Correo electrónico" al nombre de la columna que contiene la dirección de correo electrónico del proveedor 'Cambia "PDFs\" al nombre de la carpeta donde se guardan los archivos PDF Dim i As Integer Dim lastrow As Integer lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row For i = 2 To lastrow 'Generar el archivo PDF para el registro actual FileName = Sheets("Sheet1").Cells(i, "A").Value 'Cambia "A" a la columna que contiene una variable única para cada registro FilePath = "C:\PDFs\" & FileName & ".pdf" 'Cambia "PDFs\" a la carpeta donde se guardan los archivos PDF 'Adjuntar el archivo PDF al correo electrónico With objMail .To = Sheets("Sheet1").Cells(i, "B").Value 'Cambia "B" a la columna que contiene la dirección de correo electrónico del proveedor .Subject = "Facturación" .Body = "Estimado " & Sheets("Sheet1").Cells(i, "C").Value & "," & vbNewLine & vbNewLine & "Aquí tiene su factura." .Attachments.Add FilePath

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas