Macro para capturar datos Excel y volcarlos a Word

12/11/2012 - 14:59 por ddrmama | Informe spam
Hola a todos! Tengo una pregunta. El caso es que tengo un documento de Excel (usado como base de datos) y un archivo en Word que uso como documento maestro para combinar correspondencia usando los datos de Excel.

En mi base de datos, en cada fila (registro), la última cela contiene un hipervínculo al archivo de Word maestro para combinar.

El caso es que cada vez que quiero combinar tengo que llamar al documento, buscar el registro que me interesa y combinarlo. Me gustaría crear alguna macro o algún sistema para que cuando le de al hipervínculo del documento del registro 9, automáticamente me salgan esos datos combinados en el documento.

Pondré un ejemplo por si mi explicación no es del todo clara:

Imaginemos un excel de 10 registros (filas). En el se contienen 3 columnas, una con el nombre, otra con el apellido y una tercera con la palabra "documento" que es el hipervinculo.

Mi objetivo es lograr cuando pulse en el hipervinculo del registro 8, que cuando word se abra para combinar la correspondencia automáticamente me salgan ya los datos contenidos en ese registro (p.ej. Juan Díaz).

Espero que alguién me puede ayudar.

Gracias

PD. Yo probando se me ha ocurrido el sistema de sacar el registro en el que estoy con la función Fila() y de ahí volcar el dato a la parte del Word en cuestión. El caso es que no sé como hacerlo. Lo digo por si le sirve a alguién de idea.

Un saludo
 

Leer las respuestas

#1 dave
24/11/2012 - 19:54 | Informe spam
ddrmama escribió el 12/11/2012 14:59 :
Hola a todos! Tengo una pregunta. El caso es que tengo un documento de Excel
(usado como base de datos) y un archivo en Word que uso como documento maestro
para combinar correspondencia usando los datos de Excel.

En mi base de datos, en cada fila (registro), la última cela contiene un
hipervínculo al archivo de Word maestro para combinar.

El caso es que cada vez que quiero combinar tengo que llamar al documento,
buscar el registro que me interesa y combinarlo. Me gustaría crear
alguna macro o algún sistema para que cuando le de al
hipervínculo del documento del registro 9, automáticamente me
salgan esos datos combinados en el documento.

Pondré un ejemplo por si mi explicación no es del todo clara:

Imaginemos un excel de 10 registros (filas). En el se contienen 3 columnas, una
con el nombre, otra con el apellido y una tercera con la palabra
"documento" que es el hipervinculo.

Mi objetivo es lograr cuando pulse en el hipervinculo del registro 8, que
cuando word se abra para combinar la correspondencia automáticamente me
salgan ya los datos contenidos en ese registro (p.ej. Juan Díaz).

Espero que alguién me puede ayudar.

Gracias

PD. Yo probando se me ha ocurrido el sistema de sacar el registro en el que
estoy con la función Fila() y de ahí volcar el dato a la parte
del Word en cuestión. El caso es que no sé como hacerlo. Lo digo
por si le sirve a alguién de idea.

Un saludo


Hola ddrmama,

Yo hago algo similar a lo que comentas, la diferencia es que tengo mi macro en word y jalo la información desde excel, te comparto la forma como hago la apertura y cierre de excel, será cosa que lo adaptes a tus necesidades, o si prefieres envíame una copia o ejemplo de tu archivo ().

Deberas hacer referencia al objeto de Word desde Herramientas-Referencias y activar el check "Microsoft Word 12.0 Objetc Library" para 2007 o "Microsoft Word 11.0 Objetc Library" para 2003, que son los que trabajo yo.

*** Declaro variable para abir excell ***
Option Explicit
Public obj_excel As Excel.Application

Public Sub Abrir_Excel()

Set obj_excel = CreateObject("Excel.Application")
obj_excel.Workbooks.Add Template:=ActiveDocument.Path & Application.PathSeparator & "NombreArchivo.xls"

***Como no necesito ver la información de excel, lo dejo como no visible (false) activo la hoja1 y el cursor lo posiciono en la celda A1 ***
obj_excel.Visible = False
obj_excel.Worksheets("Hoja1").Activate
obj_excel.Range("A1").Activate
End Sub

Public Sub Cerrar_Excel()
*** Cierro el libro sin cambios, cierro la aplicación (excel) y libero la variable del objeto ***
obj_excel.Application.ActiveWorkbook.Close SaveChanges:=False
obj_excel.Application.Quit
Set obj_excel = Nothing
End Sub

Preguntas similares