Visual Basic - Actualizacion automatica de vinculos Excel y Word

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Actualizacion automatica de vinculos Excel y Word

Publicado por Eduardol (10 intervenciones) el 04/08/2017 01:32:24
Hola!!,

Tengo un problema. Resulta que tengo un archivo excel, con datos que quiero que se peguen automáticamente a unos archivos Word. Bueno hasta ahí todo bien. Ya hice todo lo que tenia que hacer y puedo decir que funciona como esperaba, es decir, que hasta ahí no hay problema.

Mi problema comienza cuando quiero usar esta aplicación que hice en Excel en mi ámbito laboral, donde las computadoras u ordenadores, tiene por DEFAULT, destildada esa opción, y por mas que uno lo active, siempre se desactiva al cerrar el Word o el Excel.

Buscando por ahí, encontré esta linea de código, pero entiendo que solamente los actualiza en mi libro de Excel
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

Lo que estoy necesitando, es que cuando ejecuto mi MACRO en EXCEL, y esta llama a los archivos de Word, este habilite la actualización de links, de forma automática sin intervención del usuario.


Muchas Gracias a todos
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 Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Actualizacion automatica de vinculos Excel y Word

Publicado por Andres Leonardo (1799 intervenciones) el 04/08/2017 17:54:52
se me ocurre .. .crear el objeto word y con ese objeto abrir word y activar algo parecido a lo qeu haces con excel


guarfa la macro desde word como se activa ... y esa misma la implementas en tu solucion,.
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
sin imagen de perfil

Actualizacion automatica de vinculos Excel y Word

Publicado por Eduardol (10 intervenciones) el 05/08/2017 04:10:45
Buenaas Noches Andres.

Comento que el punto anterior del post ya esta solucionado. Pero ahora me surgio otro.

Estos achivos de Word y Excel que estoy haciendo y que tienen vinculos entre si, Se rompen al mover los archivos. Por ejemplo, a estos dos lo diseñe en mi casa, y cuando los llevo a mi trabajo, los vinculs estan todos rotos, porque hacen referencia auna ruta que no existe en ese ambito.

Por lo tanto una vez que ejecuto la macro y llega el momento en que abre los archivos word, los datos no se vinculan.

Sabes si existe un código, para indicar que los los Archivos Word se encuentran vinculados a un archivo excel que esta en ese mismo directorio, independientemente de la unidad de disco, o servidor, u otra carpeta donde se encuentren alojados?

Saludos.
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
sin imagen de perfil

Actualizacion automatica de vinculos Excel y Word

Publicado por Eduardol (10 intervenciones) el 07/08/2017 05:31:08
Bueno acá les dejo el código que en parte encontré por ahí, y en parte adapte a mis necesidades.

Básicamente lo que hace es reemplazar los "vínculos", que tiene pegados un archivo word que esta conectado con un archivo excel. Generalmente cuando se pegan vínculos de un excel a word para autorrellenarlos, cuando se cambian los archivos de directorios, los vínculos siguen direccionados al archivo original, lo que si eso para vuelve inservible a la aplicación que estamos utilizando.

Entonces para solucionar el problema existen dos 2 formas de hacerlo. La primera es volver a vincular a mano todos los archivos, lo cual es engorroso y poco practico. La segunda forma es con una macro.

Antes de ejecutar el código, es necesario abrir el Word en modalidad "BORRADOR", lo que deshabilitada la actualización automática de los vínculos y nos dejara trabajar mas cómodamente. Una vez que abrimos el Word en esta modalidad, es necesario presionar ALT+F9, para ver el código de los campos, en donde veremos el "Directorio Original", donde apuntaban los enlaces o sea los vínculos, algo así como C:\\proyectos\\Proyecto nuevo\\.

Entonces si por ejemplo desarrollamos nuestro libro de excel es ese directorio y queremos llevar nuestro archivo al ámbito laboral, es decir, a nuestra oficina. es necesario modificar los vínculos y direccionarlos a la nueva unidad de disco y directorio donde va a estar alojado.

Por lo tanto, es código, facilita esta tarea, ya que en tan solo 2 minutos ha actualizado mas de 40 archivos donde lo he probado.

Mi recomendación, es que vayan ejecutando los reemplazos de a 5 o 6 archivos, ya que tiende a volverse lento.

Por ultimo aclaro que no soy programador, por lo tanto el código puede tener fallas que unos deberá solucionar si es que lo adapta a sus propios archivos. Y en cuanto a como se ejecuta, es decir, paso por paso, desconozco cual es método correcto para ejecutarlo, ya que como mencione anteriormente, no soy programador. soy mas bien autodidacta.


Sub Replace_Link()

Dim objWord As Word.Application
Dim wdSel As Object '·wdsel", es una seleccion de objetos que estan dentro de los documentos de word, o sea, las palabras clave que mas tarde va a buscar

Dim warch1 As Word.Document 'warch1,2, "alias" o "apodos" de documentos de word
Dim warch2 As Word.Document

Dim warch3 As Word.Document

Dim warch4 As Word.Document
Dim warch5 As Word.Document


Dim def As String

Set Inicio = Sheets(ActiveSheet.Name)
Nom = ThisWorkbook.Path 'Nom es "Nombre" abreviado y es igual, a la ubicacion de este archivo de excel, donde esta alojada esta macro

ruta1 = ThisWorkbook.Path & "\" & Range("AA3") 'warch1 ' aca se definen los directorios donde estan los archivos cuyos nombre estan en los "range"
ruta2 = ThisWorkbook.Path & "\" & Range("AA4") 'warch2
ruta3 = ThisWorkbook.Path & "\" & Range("AA5") 'warch3
ruta4 = ThisWorkbook.Path & "\" & Range("AA6") 'warch4



'En esta instancia se llama a la Aplicacion WORD, para que se active y abra los archivos que se indican a continuacion

Set objWord = CreateObject("Word.Application")
objWord.Visible = True


Set warch1 = objWord.Documents.Open(ruta1)
objWord.Activate

Set warch2 = objWord.Documents.Open(ruta2)
objWord.Activate

Set warch3 = objWord.Documents.Open(ruta3)
objWord.Activate

Set warch4 = objWord.Documents.Open(ruta4)
objWord.Activate

Set warch5 = objWord.Documents.Open(ruta5)
objWord.Activate


objWord.ActiveDocument.Content.Select ' aqui vuelvo activos a todos los "word.application" y activo la macro para reemplazar la antgua ubicacion del archivo por la nueva que esta en "Nom" que es igual, a Thisworkbook.path"
Set wdSel = objWord.Selection
wdSel.Find.ClearFormatting
wdSel.Find.Replacement.ClearFormatting

With wdSel.Find

.Text = "Directorio original"
.Replacement.Text = Nom
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With



wdSel.Find.Execute Replace:=wdReplaceAll


objWord.Quit savechanges:=True


End Sub


Espero haber sido claro.

Saludos a todos y espeto que les sirva.
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