Imprimir un word desde excel

Quisiera saber si se puede imprimir correspondencia de word desde excel, el excel que te comente en la otra pregunta. Necesitaría saber si puedo abrir el word para hacer la correspondencia e imprimirla y cerrar el word.

1 Respuesta

Respuesta
2

Toda la información para realizar una correspondencia de excel con word la publiqué en este enlace:

Guardar documentos de acuerdo a un texto variable

Después de realizar la correspondencia de word y excel según la información en el enlace, para imprimir, cambia la macro por esta:

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. ActiveDocument. PrintOut
        ObjWord. Quit (False)
        '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)
    Next
End Sub

Saludos.Dante Amor

Si es lo que necesitas.

Hola Dante me sale un error en esta fila.

objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0

¿Qué versión de excel tienes?

¿Qué mensaje de error te envía?

Creaste un archivo en word llamado "plantilla" y lo guardaste como plantilla de word y lo guardes en la misma carpeta donde tiene el archivo de excel con la macro?

Disculpa, el nombre del archivo lo tienes que guardar con el nombre "plantilla1" y lo tienes que guardar como plantilla

El excel es el 2010

Ahora no me acuerdo pero salí un numero.

Había cambiado en nombre por Plantilla_Rebuts y en la macro también, pensaba que funcionaria igual. Ahora con plantilla1 funciona, parece que genere words pero no se donde los guarda.

No los guarda. Tu petición es:

"quisiera saber si se puede imprimir correspondencia de word desde excel"

Si quieres que los guarde, entonces utiliza esta macro, el archivo se guarda con el nombre "nuevo archivo.docx" y lo pone en la misma carpeta donde tienes el excel con la macro.

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.ActiveDocument.PrintOut
        ruta = ThisWorkbook.Path & "\"
        nombd = ruta & "nuevo archivo.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

Saludos.Dante Amor

Sigue sin imprimir, lo de guardar yo pensaba que lo guardaba pero no es necesario, esta macro si que guarda pero solo el ultimo recibo, supongo que los guarda todos con el mismo nombre y solo queda el ultimo. Estaría bien si los guarda todos juntos con el nombre del grupo ([reemp_Grup]).

Gracias por tu tiempo y dedicación y tampoco quisiera parecer pesado.

Le quité la instrucción de imprimir.

Qué es lo que quieres, ¿qué imprima o que guarde?

Si quieres que imprima utiliza la primera macro, revisa que tengas la impresora encendida.

Si quieres que guarde y que imprima. Cambia en la macro en esta línea, la letra "D" por la columna en la que tienes el reemp_Grup

nombd = ruta & Cells(i, "D") & ".docx"

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, "D") & ".docx"
        'nombp = ruta & Cells(i, "A") & ".pdf"
        objWord.ActiveDocument.SaveAs nombd
        objWord.ActiveDocument.PrintOut
        'pdf = objWord.ActiveDocument.ExportAsFixedFormat( _
            nombp, 17, False, 0, 0, , , 0, False, True, 1)
        objWord.Quit (False)
    Next
End Sub

Saludos.Dante Amor

En principio era solo imprimir, pero si también se pueden guardar mejor a si no tendrán que guardar los recibos en papel (solo para los clientes)

Ya lo he cambiado pero me sale, " se ha producido el error "5152" en tiempo de ejecución"

No se si puede ser que el nombre de la columna este entre [ ] ¿Para qué el word lo reconozca? Gracias.

Prueba con mis dos archivos, te anexo el excel con la macro y la plantilla1. Primero me quiero asegurar de que se está imprimiendo, con estos 2 archivos probados.

Después de que pruebes con estos 2 archivos que te estoy enviando, empiezas a cambiar datos en el archivo excel y en el archivo word.

https://www.dropbox.com/s/tjkj4mkal3wnfor/correspondencia%20con%20word3%20e%20imprimir.xlsm?dl=0 

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

Me da el error 5981 en la linea, la que sale en amarillo

objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0

¿Pusiste los 2 archivos en la misma carpeta?

Perdón por el retraso pero este sábado tengo competición de natación en nuestras instalaciones y he estado liado. Si están los dos en el escritorio

He reguardado los dos archivos y ahora no me da error pero sigue sin imprimir. Parece que hace algo porque aparece el símbolo de la impresora en la parte inferior de la pantalla, al lado de la hora y la fecha, pero la impresora no hace nada, me pongo con el cursor encima de símbolo y pone 0 documentos en cola, no se si sera porque la impresora esta conectada en línea, no directamente al ordenador

Revisa que la impresora por default de word es la que tienes en red.

Prueba conectando la impresora directamente al ordenador.

Significa que sí está enviando la impresión, tal vez sea un problema de la impresora o de la red.

La macro funciona para imprimir y para guardar.

No dejes preguntas si valorar. S aludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas