(adsbygoogle = window.adsbygoogle || []).push({});
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
Por favor lee 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.
La macro contenida en el archivo que podrÃĄs descargar en forma gratuita desde el final, permite tomar una serie de datos, contenidos en el ejemplo en la columna B; y copiar o escribir esos datos en una plantilla de Word, cada uno le darÃĄ distinta utilidad, el ejemplo intenta mostrar como a partir de una macro de Excel se puede manipular Word y modificar una plantilla con datos contenidos en hojas de Excel.
Al descargar el ejemplo verÃĄs que bajarÃĄs un archivo comprimido, en ÃĐl se encuentra un fichero de Excel que contiene la macro y un Archivo de Word que funciona como plantilla, esto tambiÃĐn puede servir para rellenar una carta, lo cual se verÃĄ mÃĄs adelante; estos dos archivos se deben colocar en una misma carpeta, no interesa en que lugar de la PC, la macro detecta la direcciÃģn en forma automÃĄtica del archivo de Word, el que es utilizado como plantilla, al presionar el botÃģn se ejecuta una macro que pasa los datos contenidos en la columna B de la hoja de Excel a un archivo de Word, para finalizar lo guarda con el mismo nombre que el archivo de Excel, pero con formato de Word por supuesto, cerrando el archivo de Word usado como plantilla sin modificar para que sirva para otra oportunidad.
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.
En el vÃdeo que se observa mÃĄs abajo, verÃĄs una explicaciÃģn y funcionamiento en forma mÃĄs grÃĄfica y detallada; recomiendo que lo mires y el ejemplo serÃĄ mÃĄs fÃĄcil de comprender si eres un principiante en el tema de macros o no tiene mucha experiencia en trabajar con macros que conectan Excel con Word.
function onYtEvent(payload) {
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
CÃģdigo que se inserta en un mÃģdulo
Sub ExcelModificaPlantillaWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
Dim datos(0 To 1, 0 To 4) 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 & Âŧ Âŧ & a.Range(ÂŦB4″) & Âŧ Âŧ & a.Range(ÂŦB5Âŧ)
rutainf = ThisWorkbook.Path & ÂŦÂŧ & nomfic & ÂŦ.docxÂŧ
‘Asignamos a variables que se debe buscar y el texto por que se debe reemplazar
datos(0, 0) = ÂŦ[Campo_Fecha]Âŧ
datos(1, 0) = a.Range(ÂŦB2Âŧ)
datos(0, 1) = ÂŦ[Campo_Anexo]Âŧ
datos(1, 1) = a.Range(ÂŦB3Âŧ)
datos(0, 2) = ÂŦ[Campo_Socio1]Âŧ
datos(1, 2) = a.Range(ÂŦB4Âŧ)
datos(0, 3) = ÂŦ[Campo_Socio2]Âŧ
datos(1, 3) = a.Range(ÂŦB5Âŧ)
datos(0, 4) = ÂŦ[Campo_Domicilio]Âŧ
datos(1, 4) = a.Range(ÂŦB6Âŧ)
‘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 libro se generÃģ 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 4) 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 & Âŧ Âŧ & a.Range(ÂŦB4″) & Âŧ Âŧ & a.Range(ÂŦB5Âŧ)
rutainf = ThisWorkbook.Path & ÂŦÂŧ & nomfic & ÂŦ.docxÂŧ
‘Asignamos a variables que se debe buscar y el texto por que se debe reemplazar
datos(0, 0) = ÂŦ[Campo_Fecha]Âŧ
datos(1, 0) = a.Range(ÂŦB2Âŧ)
datos(0, 1) = ÂŦ[Campo_Anexo]Âŧ
datos(1, 1) = a.Range(ÂŦB3Âŧ)
datos(0, 2) = ÂŦ[Campo_Socio1]Âŧ
datos(1, 2) = a.Range(ÂŦB4Âŧ)
datos(0, 3) = ÂŦ[Campo_Socio2]Âŧ
datos(1, 3) = a.Range(ÂŦB5Âŧ)
datos(0, 4) = ÂŦ[Campo_Domicilio]Âŧ
datos(1, 4) = a.Range(ÂŦB6Âŧ)
‘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 libro se generÃģ con ÃĐxitoÂŧ), vbInformation, ÂŦAVISOÂŧ
wdDoc.Activate
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
(adsbygoogle = window.adsbygoogle || []).push({});
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