Visual Basic para Aplicaciones - Macro modificar propiedades word a partir de excel

Life is soft - evento anual de software empresarial
 
Vista:

Macro modificar propiedades word a partir de excel

Publicado por cris (7 intervenciones) el 22/01/2010 13:02:48
Hola!!
Tengo que hacer una macro que me modifique las propiedades de un documento word automáticamente a partir de unas celdas de un documento excel.
El caso es que yo no he hecho macros antes, más allá de grabarlas en excel, y no tengo mucha idea de visual basic.
Buscando en la red he encontrado la siguiente macro:
With ActiveDocument
.BuiltInDocumentProperties(wdPropertyTitle) = "Title"
.BuiltInDocumentProperties(wdPropertySubject) = "Word VB Help"
.BuiltInDocumentProperties(wdPropertyAuthor) = "Carl Armbruster"
.BuiltInDocumentProperties(wdPropertyCategory) = "Word Documents"
.BuiltInDocumentProperties(wdPropertyKeywords) = "VB, Stuff"
End With
Sería posible modificar esta para que coja el contenido de una celda concreta de un excel???
Sabeis otra manera de hacerlo??
Muchísimas gracias por la ayuda!
Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Macro modificar propiedades word a partir de ex

Publicado por JuanC (565 intervenciones) el 22/01/2010 18:26:03
si no entendí mal querés ejecutar la macro en word pero usando datos que están en un libro de excel?
no es imposible, pero...
deberías abrir el libro (creando una instancia de excel), extraer los datos y cerrarlo
el problema es que si no sabés algo de VBA se complica...

un ejemplo básico...

Sub test()
Dim xlSheet As Object
Dim sFile$, sName$
sFile = "C:\Documents and Settings\JC\Escritorio\libro1.xls"
Set xlSheet = GetObject(sFile)
sName = xlSheet.Worksheets("Hoja1").Range("A1").Value
MsgBox sName
Set xlSheet = Nothing
End Sub

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro modificar propiedades word a partir de ex

Publicado por cris (7 intervenciones) el 25/01/2010 10:08:05
Muchas gracias por la ayuda!!! Me ha servido de mucho!
Ahora consigo hacer que funcione mi macro como yo quiero para un documento, pero, me surgen un par de dudas:
- Se podría hacer para que la ruta del fichero sea relativa y así poder usar la macro indistintamente??
- Se podría modificar la macro para que cambie varios ficheros a la vez???

Te pongo el código que tengo:

Sub propiedades()
'
' propiedades Macro
'
Dim xlSheet As Object
Dim sFile$, sTitle$, sSubject$, sAuthor$, sCategory$, sKeyWords$
sFile = ".........." ' aqui va la ruta del fichero
Set xlSheet = GetObject(sFile)
sTitle = xlSheet.Worksheets("Hoja1").Range("D11").Value
sSubject = xlSheet.Worksheets("Hoja1").Range("D13").Value
sAuthor = xlSheet.Worksheets("Hoja1").Range("L25").Value
sCategory = xlSheet.Worksheets("Hoja1").Range("D14").Value
sKeyWords = xlSheet.Worksheets("Hoja1").Range("D21").Value

Set xlSheet = Nothing

With ActiveDocument
.BuiltInDocumentProperties(wdPropertyTitle) = sTitle
.BuiltInDocumentProperties(wdPropertySubject) = sSubject
.BuiltInDocumentProperties(wdPropertyAuthor) = sAuthor
.BuiltInDocumentProperties(wdPropertyCategory) = sCategory
.BuiltInDocumentProperties(wdPropertyKeywords) = sKeyWords
End With

actualizar_tabla

End Sub

Muchisimas gracias por la ayuda!!!
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Macro modificar propiedades word a partir de ex

Publicado por JuanC (565 intervenciones) el 25/01/2010 11:30:14
claro que se puede...
una forma es convertir el procedimiento Sub en Function

Function propiedades(ByVal sFileName As String)
'
' propiedades Macro
'
Dim xlSheet As Object
Dim sFile$, sTitle$, sSubject$, sAuthor$, sCategory$, sKeyWords$
sFile = ".........." ' aqui va la ruta del fichero
Set xlSheet = GetObject(sFileName)
sTitle = xlSheet.Worksheets("Hoja1").Range("D11").Value
sSubject = xlSheet.Worksheets("Hoja1").Range("D13").Value
...
End Function

... y de esa manera creas un procedimiento que llame a la función
con el nombre de archivo correspondiente...

Sub main()
Call propiedades("archivo.doc")
Call propiedades("archivo2.doc")
End Sub

obviamente que podría optimizarce, pero es un buen comienzo...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro modificar propiedades word a partir de ex

Publicado por cris (7 intervenciones) el 25/01/2010 11:40:48
Ésta es una muy buena solución de momento!!

Y sobre poner la ruta del fichero excel de manera relativa???? he encontrado en internet esto:

Dim Ruta As String
Ruta = App.Path & "\Tablas_Pt.xls"

pero no me funciona, da error al ejecutar la macro. Hay alguna otra manera de poder poner rutas relativas??

Muchas gracias por las respuestas y por contestar tan pronto además!!!!
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Macro modificar propiedades word a partir de ex

Publicado por JuanC (565 intervenciones) el 25/01/2010 14:55:33
Application.Path '//Excel
ActiveWorkbook.Path '//Libro actual

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro modificar propiedades word a partir de ex

Publicado por cris (7 intervenciones) el 26/01/2010 11:32:37
Muchas gracias por responder!

Me surge una nueva duda.....verás, he puesto Application.Path pero lo me señala parece ser la ubicación del programa que va a ejecutar mi excel, en lugar de la localización de mi documento, y lo que yo necesito es esto último.
Hay alguna otra manera, o es que yo estoy haciendo algo mal???

Muchas gracias por la paciencia!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Macro modificar propiedades word a partir de ex

Publicado por JuanC (565 intervenciones) el 26/01/2010 11:50:11
Application.ActiveDocument.Path

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro modificar propiedades word a partir de ex

Publicado por cris (7 intervenciones) el 27/01/2010 09:57:54
Hola!!

Esto tampoco me funciona del todo. Creo que el problema está en que mi archivo excel está en otra carpeta diferente a mi archivo word. La jerarquía de directorios sería la siguiente:

C:/A/B/word.doc
C:/A/C/excel.xls

Aplicando Application.ActiveDocument.Path me planto en el directorio B, pero tendría que retroceder un directorio para colocarme en A y asi ya añadirle la ruta del excel.

Se puede hacer esto de alguna manera????

Muchas gracias por todo!
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro modificar propiedades word a partir de ex

Publicado por cris (7 intervenciones) el 27/01/2010 12:05:37
Ya lo he resuelto, usando Application.ActiveDocument.Path y las funciones Len y Left para calcular las diferencias entre directorios.

Muchas gracias por vuestra ayuda!
Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Macro modificar propiedades word a partir de excel

Publicado por MIguel MOntoya (1 intervención) el 12/12/2014 20:01:35
ya paso los datos y tablas de Excel a Word, pero como al pasarlos los selecciona todo, cuando manda la siguiente parte sobreescribe lo que ya había enviado a Word como lo puedo solucionar???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar