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
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
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
- Compartir respuesta