PROGRAMAR EN VBA MACROS PARA EXCEL: Como abrir modificar e imprimir archivo Word desde Excel

Como abrir modificar e imprimir archivo Word desde Excel





El ejemplo que se presenta a continuación contesta la pregunta como abrir un archivo de word, modificarlo e imprimirlo en la impresora predeterminada o configurar otra impresora para imprimir, siendo otra macro de la colección de macros presentadas y que se relaciona con la conexión de Excel con Word. A los fines de facilitar la búsqueda en los links siguientes hay otros post relacionados y que permiten conectar Word son Excel:

Como crear un archivo de Word con Excel
Como abrir un archivo de Word con Excel
Como conectar Excel con Word crear archivo e insertar texto en Word
Como dar formato a texto de Word desde Excel 
Como abrir modificar e imprimir archivo de Word con macro desde Excel

Recomiendo que leas un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  


Al descargar el archivo, desde el link del final, verás que es un archivo comprimido, en el hay dos archivos, uno con la macro que permite conectar Word con Excel y un archivo Word; debes descargar los dos archivos en una misma carpeta, ejecuta el archivo de Excel con la macro, verás que hay un botón, al presionarlo corre una macro que permite abrir el achivo de word, modificar texto inserto en Word y mandarlo a imprimir, todo ello presionando un solo botón.

La macro abre el fichero de Word que se descargó conjuntamente con el ejemplo; luego se hace un bucle con la instrucción For ... Next lo cual permite recorrer todas las letras que hay en la columna A; la macro a medida que recorre las letras irá modificando en Word la letra que corresponda a medida que se recorran las celdas con el bucle, más específicamente, irá agregando en Word la siguiente cadena de texto "Anexo A", "Anexo B" y así sucesivamente hasta la última letra; antes de seguir con la letra siguiente irá imprimiendo en la impresora determinada el archivo de Word; luego cierra el archivo de Word y la aplicación Word.

Te recomiendo descargar el archivo para poder entender el funcionamiento y mirar el siguiente vídeo  a continuación, ya que contiene una explicación más gráfica y detallada verás su funcionamiento y explicación de cada línea de código, a los fines que puedas modificar a tus necesidades la macro que permite abrir, modificar e imprimir archivo de Word desde Excel.

Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.







Código que se inserta en un módulo




Sub GeneraArchivo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim conta As Boolean, fila As Long, letra As String, ruta As String
Dim objWord As Word.Application, wdDoc As Word.Document
Dim datos(0 To 1, 0 To 2) As String
Set a = Sheets(ActiveSheet.Name)
uf = a.Range("A" & Rows.Count).End(xlUp).Row
ruta = ThisWorkbook.Path & "\" & Range("B4") & ".docx"
Set objWord = CreateObject("Word.Application")
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True
Set wdDoc = objWord.Documents.Open(ruta)

For i = 5 To uf
letra = a.Cells(i, "A")
If i = 5 Then
datos(0, 0) = "[CAMPO]"
Else
datos(0, 0) = "ANEXO" & " " & a.Cells(i, "A").Offset(-1, 0)
End If
datos(1, 0) = a.Range("A3") & " " & letra

For x = 0 To UBound(datos, 2)
textobuscar = datos(0, x)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar 'texto a buscar
'Bucle para reemplazar todo el texto que encuentre y solo el primero que encuentre
While objWord.Selection.Find.Found = True
objWord.Selection.Text = datos(1, x) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
Next x
wdDoc.PrintOut
Next i
wdDoc.Close False
objWord.Quit True
MsgBox ("Las hojas se generaron e imprimieron con éxito"), vbInformation, "AVISO"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends