Word - Guardar archivo .docm con el valor de un Marcador

 
Vista:
sin imagen de perfil
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 18/09/2020 04:14:13
Buenas tardes amigos.

Les escribo para solicitar vuestra ayuda, ya que no consigo informacion al respecto.

Estoy realizando un documento, una Nota de entrega con una macro. El documento funciona perfecto.

Pero ademas de lo que ya hace la macro, me gustaria que al guardar el archivo agrege el valor de un determinado marcador a dicho nombre de archivo.

Es decir, el marcador es el nombre del Area a quien va dirigida la nota, o Area que realizo la solicitud.

Quedando de esta forma:

Texto fijo & Orden & Marcador.docm

Nota numero 0001 Despacho.docm

Este es mi codigo

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
Sub Auto_Enumerar()
 
Order = System.PrivateProfileString("C:\Users\Nombre de usuario\Desktop\Documentos varios\Notas Internas\Settings.Txt", "MacroSettings", "Order")
 
If Order = "" Then
Order = 1
Else
Order = Order + 1
End If
 
System.PrivateProfileString("C:\Users\Nombre de usuario\Desktop\Documentos varios\Notas Internas\Settings.txt", "MacroSettings", _
"Order") = Order
 
'Esta ruta es para guardar el nuevo archivo
 
ChangeFileOpenDirectory ("C:\Users\Nombre de usuario\Desktop\Documentos varios\Notas Internas\")
 
 
ActiveDocument.Bookmarks("Order").Range.InsertBefore Format(Order, "000#")
ActiveDocument.SaveAs FileName:="Nota Interna " & Format(Order, "000#")
 
With ActiveDocument
.Shapes(1).Visible = msoFalse
 
.PrintOut
.Shapes(1).Visible = msoTrue
 
End With
 
With ActiveDocument
.Shapes(1).Visible = msoFalse
 
.PrintOut
.Shapes(1).Visible = msoTrue
 
End With
 
End Sub

Agradecido de antemano por la ayuda que me puedan brindar.
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
sin imagen de perfil
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 18/09/2020 20:01:22
Estimado amigo, estoy dandole vuelta al asunto y no entiendo bien como realizar el cambio que sugiere dicha pagina.

Cambio que creo entender solo deberia ser en la linea
ActiveDocument.SaveAs FileName:="Nota Interna " & Format(Order, "000#")

Pero o me da error o no realiza ninguna adicion de texto

Si me podeis tirar un cable os agradeceria mucho
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 19/09/2020 23:30:58
Hola Pepe, gracias por escribir, ya estoy casi calvo tratando de arreglar la macro jejejeje

Casualmente esa es la macro que estoy usando, pero despues de horas y horas de buscar, poner, probar, modificar, y quitar, pareciera que el problema es directamente en mi documento.

Te explico el porque creo es ahi, he probado con una macro para verificar los marcadores, y, al correrla, me indica que si existe dicho marcador, pero, al tratar de traer el valor de dicho marcador en un MsgBox, me trae vacio, a menos que lo este haciendo mal, lo cual es muy probable jajajajaa

Esta es la macro que estoy usando para verificar si existe el marcador.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Sub BookmarkExists()
 
'https://vbaoverall.com/bookmark-object-word-vba/
 
    'Declarar variable de documento
    Dim oDocument As Document
 
    'Obtener la referencia del documento actual
    Set oDocument = ActiveDocument
 
    'Compruebe si existe el marcador
    If oDocument.Bookmarks.Exists("Area") = True Then
        MsgBox "El marcador Area existe"
                MsgBox " El Valor es" & Area ' Esta linea la agrege, con la intension de que me diga el valor del marcador, la verdad no estoy muy seguro de haberlo hecho bien
    Else
        MsgBox "Lo sentimos, el marcador no existe"
    End If
End Sub

A pesar de haber revisado los marcadores del archivo, lo cuales parecen estar bien, anexo el archivo para que le tires un ojo para ver si es eso, o es que no se como llamar el valor.

Agradecido de antemano por la ayuda que me puedas brindar.
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 wordexperto.com
Val: 2.194
Oro
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por wordexperto.com (1182 intervenciones) el 20/09/2020 11:08:44
Los marcadores existen, Mauricio. Puedes suprimir esta parte del código.
Creo que el nombre Auto_enumerar no lo reconoce como macro automática. Cambia a AutoNew.
No puedo hacer más pruebas porque todo el código hace referencia a localizaciones de tu equipo. Asegúrate de que la ruta y el nombre de la plantilla sean correctos y existan.
No te preocupes por el pelo, ya lo perderás. Ojalá que tarde mucho.
https://wordexperto.com/2019/06/13/crear-automaticamente-documentos-numerados/
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 20/09/2020 14:20:53
Hola Pepe, gracias por responder y por tu paciencia.

Tengo unos 25 años o mas que no programo, y encuentro algo ilogico que el nombre de llamado de una macro impida que se ejecuten las instrucciones que alberga, pero como yo soy nuevo en le mundo de las Macros realice los cambios segun tu recomendacion, y sigue sin agregar el valor del marcador "Area" al nombre del nuevo archivo,

El archivo "plantilla", por lo poco que se y entiendo esta bien, y la macro se ejecuta a la perfeccion generando un nuevo archivo con el nuevo nombre y correlativo, Ejemplo, Nota interna 0001, Nota interna 0002, y asi sucesivamente en la medida en que se ejecute el archivo que uso como "plantilla".

El problema esta en que dentro del nombre del nuevo archivo, no logro agregar el valor del marcador Area, el cual varia en funcion de lo que se seleccione en la lista desplegable, ejemplo Despacho, Soporte, Linea de Produccion, etc.

Tambien pense que el problema estaba en la lista desplegable, asi que cree un nuevo marcador con otro nombre para verificar, y aun asi no realiza la adicion dentro del nombre del nuevo archivo.

Asi que aun no descubro como recuperar el valor de dicho marcador, e insertarlo dentro del nombre del nuevo archivo

En realidad pense que seria mas facil...
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 20/09/2020 22:24:01
Pepe, creo que me entendiste mal, yo NO programo desde hace mas de 25 años, y tengo haciendo macros en word desde hace como un mes, tal vez menos tiempo, asi que ando medio perdido.

En fin..., El asunto es que ya resolvi el dilema, la respuesta, la encontre en un foro americano.

He aqui el link https://www.office-forums.com/threads/use-bookmark-as-filename-in-save-as-dialog.1861321/

De todos modos dejo la solucion para esas almas atormentadas, que al igual que yo, buscan en la red una respuesta a estas dudas que nos atormentan.

Nivel de dificultad: mega ultra Extremo... Jajajajajajaja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
En el codigo del primer mensaje
 
Buscar:
 
ActiveDocument.Bookmarks("Order").Range.InsertBefore Format(Order, "000#")
 
Agregar antes de:
 
ValorArea = ActiveDocument.Bookmarks("Area").Range.Text
 
Buscar:
 
ActiveDocument.SaveAs FileName:="Nota Interna " & Format(Order, "000#")
 
Reemplazar por:
 
ActiveDocument.SaveAs FileName:="Nota Interna " & Format(Order, "000#") & " " & ValorArea
 
Listo!!

Eso es todo, como veran era una soquetada, pero bueno...

Agradecido Pepe por tu ayuda.

Solo me queda la duda del porque me falla cuando lo guardo en PDF

Si doy con la solucion lo coloco aqui.
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 20/09/2020 23:32:39
Se me paso dejar la imagen de como funciona la macro.

Archivos

Espero que todo esto le sirva a alguien.

Ahora vamos por el formato PDF al guardar
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 21/09/2020 01:16:24
Hice las modificaciones pertinentes, pero a pesar de que los formatos .doc, docx, y .pdf son creados correctamente (Nombre de archivo y tipo de formato), al momento de abrirlos generan un error o no abre ninguno de los documentos.

Asi que he optado por una solucion salomonica y practica, borrar todo el projecto automaticamente al momento de generar el nuevo documento, guardandose este automaticamente en el formato que ya funcionaba, es decir .docm (formato de word para macros - El cual ya no tiene macros), y santo remedio, no sera la solucion mas elegante, pero funciona perfecto.

Aqui os dejo el codigo por si alguien lo necesita. http://www.vbaexpress.com/kb/getarticle.php?kb_id=64

Link de donde lo extraje:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
 
Public Sub BorrarTodoVBA()
 
    Dim vbComp As Object
 
    For Each vbComp In ActiveDocument.VBProject.VBComponents
 
        With vbComp
            If .Type = 100 Then
                .CodeModule.DeleteLines 1, .CodeModule.CountOfLines
            Else
                ActiveDocument.VBProject.VBComponents.Remove vbComp
            End If
        End With
    Next vbComp
 
End Sub

Gracias Pepe, un fuerte abrazo.

Nos veremos en la proxima duda.

Tema solucionado
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
Val: 32
Ha mantenido su posición en Word (en relación al último mes)
Gráfica de Word

Guardar archivo .docm con el valor de un Marcador

Publicado por Mauricio (11 intervenciones) el 21/09/2020 21:32:56
Tranquilo Pepe.

De todos modos agradecidopor la ayuda.
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