Macro combina excel con word y envía correo en pdf
Creé una macro ( copia de una creada por ti Dante ) que trabaja con planilla Excel y word
Básicamente en una planilla Excel dígito el código del trabajador,
A través de funciones de Excel me trae todos los datos del trabajador de otra hoja de la misma planilla Excel Ahora viene las macros : presiono un botón con macro
" Genera ( ) ", cuya función es combinar correspondencia word
Con los datos de Excel ( Me genera un certificado del trabajador cuyo código ingresé en la planilla Excel, el nombre del archivo toma el código del trabajador ) . Hasta aquí todo bien, pero cuando trato de hacerlo de nuevo, pongo el código de otro trabajador que llamaré trabajador 2, me graba el archivo con el código del trabajador 2, pero los datos del documentos son los del trabajador 1.
La otra parte de las instrucciones me resulta bien, lo que hace es enviar por correo el archivo, esto lo hace a través de macro " envía "
Sub generarut()
'Por.Dante Amor
Dim w As Object
Set w = CreateObject ("Word.application")
Set documento = w.Documents.Open_
("d:\certificados\certificado_antiguedad.docx")
w.Visible = True
patharch = "d:\certificados\_
certificado_antiguedad.docx"
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)
ObjWord.Selection.Move 6, -1
ObjWord.Selection._
Find.Execute FindText:=textobuscar
Wend
Next
'guarda como word
'convierte a pdf
ruta = "d:\certificados\"
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
w.Documents.Close SaveChanges_
:=wdDoNotSaveChanges
w.Quit
End Sub
Sub envia()
'
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
j = 2
numCorreo = ThisWorkbook.Worksheets("base")_
.Range("T" & j)
Do While numCorreo <> ""
Call EnviaCorreo(Range("T" & j).Value,_
Range("W1").Value, Range("W3").Value,_
(Range("w2").Value &_
"" & Range("A" & j).Value & ".pdf"))
j = j + 1
numCorreo = ThisWorkbook.Worksheets("base")._
Range("T" & j)
Loop
End Sub