.
Si requieres aprender a rellenar un Pagare o cualquier otro documento con datos que están disponibles en Excel utilizando Word, en este pos aporto una macro que permite aprende como rellenar pagare con datos de Excel manipulando Word desde Excel, podrás realizar lo que requieras con los datos que estén en la base de datos de Excel enviándolos a Word para ser usados en una plantilla de Word y su posterior impresión, todo al alcance de un solo click desde Excel.
Otros post relacionados con macros que permiten manejar Word desde 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
Como modificar una plantilla de Word con macro de Excel
Como rellenar pagare con datos de Excel conectando con Word
Recomiendo leer 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.
Para comprender en forma fácil el ejemplo aconsejo descargar el archivo, desde el final del link lo podrás hacer, es gratuito y el código esta abierto como todas las macros publicadas en esta Web; al abrir el fichero verás un botón el cual permite ejecutar la macro; además existen una serie de datos que serán usados para rellenar un pagare de ejemplo; es decir en Word se incorporarán todos los datos que están en la base de datos de Excel, en este caso en el rango B2:B15.
En el vídeo a continuación podrás observar una explicación más detallada y visual del funcionamiento de la macro, recomiendo invertir unos minutos y observar el mismo, lo cual será de utilidad para comprender el funcionamiento de esta macros que conectan Excel con Word.
El ejemplo de macro que permite Conectar Excel con Word y rellenar un pagare; básicamente toma los datos de Excel, Abre una plantilla de Word, incorpora los datos en la plantilla, guardando el archivo con un nombre compuesto por el número del pagaré, por último cierra la plantilla sin modificarla para que permita futuros usos.
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 ManejarWordRellenarPagare()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
Dim datos(0 To 1, 0 To 12) As String
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
nom = ActiveWorkbook.Name
pto = InStr(nom, «.»)
nomarch = Left(nom, pto – 1)
ruta = ThisWorkbook.Path & «» & nomarch & «.docx»
Set objWord = CreateObject(«Word.Application»)
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True
Set wdDoc = objWord.Documents.Open(ruta)
nomfic = nomarch & » Num » & a.Range(«B2″) & » » & a.Range(«B6»)
rutainf = ThisWorkbook.Path & «» & nomfic & «.docx»‘Asignamos a variables que se debe buscar y el texto por que se debe reemplazar
datos(0, 0) = «[Campo_Numero]»
datos(1, 0) = a.Range(«B2»)
datos(0, 1) = «[Campo_FechaEmision]»
datos(1, 1) = Format(a.Range(«B3»), «dd «»de»» mmmm «»de»» yyyy»)
datos(0, 2) = «[Campo_ImporteNumero]»
datos(1, 2) = Format(a.Range(«B4»), «#,##0.00;-#,##0.00»)
datos(0, 3) = «[Campo_FechaPago]»
datos(1, 3) = Format(a.Range(«B5»), «dd «»de»» mmmm «»de»» yyyy»)
datos(0, 4) = «[Campo_Beneficiario]»
datos(1, 4) = a.Range(«B6»)
datos(0, 5) = «[Campo_ImporteLetras]»
datos(1, 5) = a.Range(«B7»)
datos(0, 6) = «[Campo_Especie]»
datos(1, 6) = a.Range(«B8»)
datos(0, 7) = «[Campo_DomicilioPago]»
datos(1, 7) = a.Range(«B9″) & » » & a.Range(«B10»)
datos(0, 8) = «[Campo_NombreDeudor]»
datos(1, 8) = a.Range(«B11»)
datos(0, 9) = «[Campo_Cedula]»
datos(1, 9) = a.Range(«B12»)
datos(0, 10) = «[Campo_DomicilioDeudor]»
datos(1, 10) = a.Range(«B13»)
datos(0, 11) = «[Campo_Localidad]»
datos(1, 11) = a.Range(«B14»)
datos(0, 12) = «[Campo_Telefono]»
datos(1, 12) = a.Range(«B15»)
‘Creamos un bucle que va desde el primero al último número de la matriz
For I = 0 To UBound(datos, 2)
textobuscar = datos(0, I)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
‘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, I) ‘texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
Next I
‘Guarda el archivo con el nombre asignado
wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
‘wdDoc.Close
MsgBox («El documento se relleno y guardó con éxito»), vbInformation, «AVISO»
wdDoc.Activate
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
Dim datos(0 To 1, 0 To 12) As String
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
nom = ActiveWorkbook.Name
pto = InStr(nom, «.»)
nomarch = Left(nom, pto – 1)
ruta = ThisWorkbook.Path & «» & nomarch & «.docx»
Set objWord = CreateObject(«Word.Application»)
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True
Set wdDoc = objWord.Documents.Open(ruta)
nomfic = nomarch & » Num » & a.Range(«B2″) & » » & a.Range(«B6»)
rutainf = ThisWorkbook.Path & «» & nomfic & «.docx»
‘Asignamos a variables que se debe buscar y el texto por que se debe reemplazar
datos(0, 0) = «[Campo_Numero]»
datos(1, 0) = a.Range(«B2»)
datos(0, 1) = «[Campo_FechaEmision]»
datos(1, 1) = Format(a.Range(«B3»), «dd «»de»» mmmm «»de»» yyyy»)
datos(0, 2) = «[Campo_ImporteNumero]»
datos(1, 2) = Format(a.Range(«B4»), «#,##0.00;-#,##0.00»)
datos(0, 3) = «[Campo_FechaPago]»
datos(1, 3) = Format(a.Range(«B5»), «dd «»de»» mmmm «»de»» yyyy»)
datos(0, 4) = «[Campo_Beneficiario]»
datos(1, 4) = a.Range(«B6»)
datos(0, 5) = «[Campo_ImporteLetras]»
datos(1, 5) = a.Range(«B7»)
datos(0, 6) = «[Campo_Especie]»
datos(1, 6) = a.Range(«B8»)
datos(0, 7) = «[Campo_DomicilioPago]»
datos(1, 7) = a.Range(«B9″) & » » & a.Range(«B10»)
datos(0, 8) = «[Campo_NombreDeudor]»
datos(1, 8) = a.Range(«B11»)
datos(0, 9) = «[Campo_Cedula]»
datos(1, 9) = a.Range(«B12»)
datos(0, 10) = «[Campo_DomicilioDeudor]»
datos(1, 10) = a.Range(«B13»)
datos(0, 11) = «[Campo_Localidad]»
datos(1, 11) = a.Range(«B14»)
datos(0, 12) = «[Campo_Telefono]»
datos(1, 12) = a.Range(«B15»)
‘Creamos un bucle que va desde el primero al último número de la matriz
For I = 0 To UBound(datos, 2)
textobuscar = datos(0, I)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
‘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, I) ‘texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
Next I
‘Guarda el archivo con el nombre asignado
wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
‘wdDoc.Close
MsgBox («El documento se relleno y guardó con éxito»), vbInformation, «AVISO»
wdDoc.Activate
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
.
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