Modificar la cabecera de un WORD con macro en EXCEL
Publicado por Antoni Masana (502 intervenciones) el 17/05/2017 19:30:17
Sigo Buscando una solución para poder ejecutar una macro que me abra un documento WORD modifique la cabecera y lo guarde en otra ubicación.
El proceso funciona de la siguiente forma, cuando se abre la hoja Excel se muestra un formulario donde se introducen los datos y botones, los principales son Ejecutar y Salir que vuelve a la hoja del libro.
Tengo la siguiente función a la que se le pasa la ruta y el nombre de un documento Word que tiene que hacer lo siguiente:
1.- Abrir el documento.
2.- Colocarse en el documento.
3.- guardarlo en otra ubicación.
Hasta la linea 10 funciona, a la 14 se le supone, y en la 12 ¿Que he de poner?.
Esta es la macro que tengo que ejecutar es decir poner la llamada en la linea 12 de la anterior, pero solo funciona si la ejecuto desde un documento WORD.
Primero las constantes el excel no las reconoce y si las defino en la primera línea ya me da error.
Tengo otra opción, bueno de hecho tango varias.
- La mas compleja es hacer el formulario en Word.
- La otra es: desde el Excel abrir un documento Word en blanco en el que pondrá estas dos funciones y ejecutar la macro del propio Word y entonces funcionada.
Y ahora la pregunta ¿Se puede hacer? ¿Funciona? ¿Como se hace?
Saludos a todos.
\\//_
El proceso funciona de la siguiente forma, cuando se abre la hoja Excel se muestra un formulario donde se introducen los datos y botones, los principales son Ejecutar y Salir que vuelve a la hoja del libro.
Tengo la siguiente función a la que se le pasa la ruta y el nombre de un documento Word que tiene que hacer lo siguiente:
1.- Abrir el documento.
2.- Colocarse en el documento.
3.- guardarlo en otra ubicación.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Abrir_Documento(DocW)
Dim Mi_Docu As Object, File As String
Set Mi_Docu = CreateObject("Word.Application")
Mi_Docu.Visible = True
Mi_Docu.Documents.Open (DocW)
If Not Mi_Docu Is Nothing Then
Mi_Docu.Activate
<<< A Q U I E S T A M I G R A N P R O B L E M A >>>
File = c_Destin + Mid$(DocW, Len(c_Planti) + 1) : Mi_Docu.SaveAs (DocW)
End If
Set Mi_Docu = Nothing
End Sub
Hasta la linea 10 funciona, a la 14 se le supone, y en la 12 ¿Que he de poner?.
Esta es la macro que tengo que ejecutar es decir poner la llamada en la linea 12 de la anterior, pero solo funciona si la ejecuto desde un documento WORD.
Primero las constantes el excel no las reconoce y si las defino en la primera línea ya me da error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub Modificar()
With ActiveWindow
If .View.SplitSpecial <> wdPaneNone Then
.Panes(2).Close
End If
If .ActivePane.View.Type = wdNormalView Or .Type = wdOutlineView Then
.ActivePane.View.Type = wdPrintView
End If
.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End With
With Selection
.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
.Delete Unit:=wdCharacter, Count:=1
.InlineShapes.AddPicture FileName:="<<< LOGO >>>", _
LinkToFile:=False, _
SaveWithDocument:=True
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.MoveRight Unit:=wdCell
.Delete Unit:=wdCharacter, Count:=1
.Font.Bold = True
.TypeText Text:="Revisó:"
.Font.Bold = False
.TypeText Text:="<<< Texto-1 >>>"
.MoveRight Unit:=wdCell
.Delete Unit:=wdCharacter, Count:=1
.Font.Bold = -1
.TypeText Text:="Aprobó:"
.Font.Bold = 0
.TypeText Text:="<<< Texto-2 >>>"
End With
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
Tengo otra opción, bueno de hecho tango varias.
- La mas compleja es hacer el formulario en Word.
- La otra es: desde el Excel abrir un documento Word en blanco en el que pondrá estas dos funciones y ejecutar la macro del propio Word y entonces funcionada.
Y ahora la pregunta ¿Se puede hacer? ¿Funciona? ¿Como se hace?
Saludos a todos.
\\//_
Valora esta pregunta
0