Numeracion automatica

23/12/2005 - 16:48 por Art | Informe spam
Hola a todos

Como puedo hacer que cada vez que abra el word, el documento (la plantilla
en este caso) sea numerada.
Me explico mejor, abro el word y el documento tenga el nombre 1234.doc, lo
cierro y cuando abro otra vez la nueva plantilla sea 1235.doc
gracias

Art

Preguntas similare

Leer las respuestas

#1 Marta PM [MVP Office]
24/12/2005 - 00:09 | Informe spam
Hola:
Mediante una macro lo puedes conseguir. Prueba la siguiente macro a ver si se ajusta
a tus necesidades (puede que se la macro se pueda optimizar, pues el VBA no es mi
fuerte, estoy aprendiendo).
Esta macro es una adaptación de esta macro de Pilar Mueckay [MVP-Office System]
http://pmueckay.mykb.com/Article_CC639.aspx.
Con esta macro cada vez que un documento se abre basado en esa plantilla se genera un
número en el archivo "numeracionplantilla.txt" (que por defecto he ubicado en la raiz
del disco C:\, puedes cambiarlo a tu gusto) y se guarda automáticamente con el nombre
correspondiente a esa numeración. También, por defecto he puesto que los documentos
gnerados se guarden en la raiz del disco C:\, cosa que puedes mmodificar.
Premisas:
1- Abre la plantilla que uses para crear el documento.
2- Inserta, en el encabezado o en el pie de página o donde desees un marcador que se
llame Numero. Para ello vas a Insertar / Marcador y allí escribes Numero y luego le
das a Añadir.
3- Abre el editor de VBA con ALT+F11 y "navega" por el panel de Proyectos hasta tu
plantilla. Una vez situado sobre ella ve al menú Insertar / Módulo.
4- Copia y pega el siguiente código:
Sub AutoNew()
Dim Pordefecto As String
Dim Rango As Range
Pordefecto = "1"
Numero = System.PrivateProfileString("C:umeracionplantilla.txt", _
"MacroSettings", "Numero")
If Numero = "" Then
Numero = 1
End If
Set Rango = ActiveDocument.Bookmarks("Numero").Range
Rango.Delete
Rango.Text = Numero
ActiveDocument.ActiveWindow.Caption = Rango.Text
Numero = Numero + 1
'Guarda el próximo número en el archivo numeracionplantilla.txt listo para su
próximo uso.
System.PrivateProfileString("C:umeracionplantilla.txt", "MacroSettings", _
"Numero") = Numero
'Regenera el marcador para su próximo uso.
With ActiveDocument.Bookmarks
.Add Name:="Numero", Range:=Rango
End With
'Aquí pones la ruta donde desees guardar los documentos generados
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text
End Sub

Pruébala y comenta, por favor.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin garantías
explícitas ni implícitas, y no otorga derecho alguno. Usted asume cualquier riesgo al
poner en práctica lo recomendado o sugerido en el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Hola a todos

Como puedo hacer que cada vez que abra el word, el documento (la plantilla en este
caso) sea numerada.
Me explico mejor, abro el word y el documento tenga el nombre 1234.doc, lo cierro y
cuando abro otra vez la nueva plantilla sea 1235.doc
gracias

Art

Respuesta Responder a este mensaje
#2 Art
27/12/2005 - 19:08 | Informe spam
Casi perfecta, muchas gracias

La he estado probando y funciona bastante bien, lo unico es que guarda el
archivo con el numero que
ha creado , automaticamente. Solo abrir la plantilla ya crea el documento
con el numero y a mi me gustaria que no lo creara, si no que al guardarlo
donde yo quisiera, entonces se creara el documento en el disco duro.

Gracias

Art

"Marta PM [MVP Office]" escribió en el
mensaje news:
Hola:
Mediante una macro lo puedes conseguir. Prueba la siguiente macro a ver si
se ajusta a tus necesidades (puede que se la macro se pueda optimizar,
pues el VBA no es mi fuerte, estoy aprendiendo).
Esta macro es una adaptación de esta macro de Pilar Mueckay [MVP-Office
System] http://pmueckay.mykb.com/Article_CC639.aspx.
Con esta macro cada vez que un documento se abre basado en esa plantilla
se genera un número en el archivo "numeracionplantilla.txt" (que por
defecto he ubicado en la raiz del disco C:\, puedes cambiarlo a tu gusto)
y se guarda automáticamente con el nombre correspondiente a esa
numeración. También, por defecto he puesto que los documentos gnerados se
guarden en la raiz del disco C:\, cosa que puedes mmodificar.
Premisas:
1- Abre la plantilla que uses para crear el documento.
2- Inserta, en el encabezado o en el pie de página o donde desees un
marcador que se llame Numero. Para ello vas a Insertar / Marcador y allí
escribes Numero y luego le das a Añadir.
3- Abre el editor de VBA con ALT+F11 y "navega" por el panel de Proyectos
hasta tu plantilla. Una vez situado sobre ella ve al menú Insertar /
Módulo.
4- Copia y pega el siguiente código:
Sub AutoNew()
Dim Pordefecto As String
Dim Rango As Range
Pordefecto = "1"
Numero = System.PrivateProfileString("C:umeracionplantilla.txt", _
"MacroSettings", "Numero")
If Numero = "" Then
Numero = 1
End If
Set Rango = ActiveDocument.Bookmarks("Numero").Range
Rango.Delete
Rango.Text = Numero
ActiveDocument.ActiveWindow.Caption = Rango.Text
Numero = Numero + 1
'Guarda el próximo número en el archivo numeracionplantilla.txt listo
para su próximo uso.
System.PrivateProfileString("C:umeracionplantilla.txt",
"MacroSettings", _
"Numero") = Numero
'Regenera el marcador para su próximo uso.
With ActiveDocument.Bookmarks
.Add Name:="Numero", Range:=Rango
End With
'Aquí pones la ruta donde desees guardar los documentos generados
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text
End Sub

Pruébala y comenta, por favor.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin
garantías explícitas ni implícitas, y no otorga derecho alguno. Usted
asume cualquier riesgo al poner en práctica lo recomendado o sugerido en
el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Hola a todos

Como puedo hacer que cada vez que abra el word, el documento (la
plantilla en este caso) sea numerada.
Me explico mejor, abro el word y el documento tenga el nombre 1234.doc,
lo cierro y cuando abro otra vez la nueva plantilla sea 1235.doc
gracias

Art





Respuesta Responder a este mensaje
#3 Marta PM [MVP Office]
28/12/2005 - 00:13 | Informe spam
Buff, eso ya es más complicado.
Creo que he conseguido más o menos lo que pides, pero supongo que se podría optimizar
mucho el código. Yo te explico lo que he hecho y tu ves si se te adapta y si lo
puedes mejorar.
Lo primero que debemos hacer es borrar las dos últimas líneas de la macro anterior,
es decir,
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text

Una vez hecho esto en el mismo módulo donde has pegado la macro anterior copias y
pegas las siguientes macros:

Sub Guardar()
ChangeFileOpenDirectory "C:\"
Set Rango = ActiveDocument.Bookmarks("Numero").Range
With Dialogs(wdDialogFileSaveAs)
.Name = Rango.Text
.Show
End With
End Sub

Sub FileSave()
Application.Run MacroName:="Guardar"
End Sub

Sub FileSaveAs()
Application.Run MacroName:="Guardar"
End Sub

Sub AutoClose()
If ActiveDocument.Saved = False Then
Application.Run MacroName:="Guardar"
End If
End Sub

Te explico más o menos lo que hace cada una de ellas:
La primera "Guardar" lo primero que hace es cambiar el directorio por defecto. Esto
puedes ajustarlo a tu gusto. Luego te muestra el cuadro típico de diálogo de Word con
el nombre del documento ya asignado.
La segunda "FileSave" "captura" la orden de Word de Archivo Guardar y ejecuta la
macro "Guardar" que ya sabemos lo que hace.
La tercera hace lo mismo que la anterior, pero con la opción GuardarComo.
Y la última es una macro que se ejecuta cuando cierras el documento sin haberlo
guardado antes.

Por favor, comenta si te ha servido.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin garantías
explícitas ni implícitas, y no otorga derecho alguno. Usted asume cualquier riesgo al
poner en práctica lo recomendado o sugerido en el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Casi perfecta, muchas gracias

La he estado probando y funciona bastante bien, lo unico es que guarda el archivo
con el numero que
ha creado , automaticamente. Solo abrir la plantilla ya crea el documento con el
numero y a mi me gustaria que no lo creara, si no que al guardarlo donde yo
quisiera, entonces se creara el documento en el disco duro.

Gracias

Art

"Marta PM [MVP Office]" escribió en el mensaje
news:
Hola:
Mediante una macro lo puedes conseguir. Prueba la siguiente macro a ver si se
ajusta a tus necesidades (puede que se la macro se pueda optimizar, pues el VBA no
es mi fuerte, estoy aprendiendo).
Esta macro es una adaptación de esta macro de Pilar Mueckay [MVP-Office System]
http://pmueckay.mykb.com/Article_CC639.aspx.
Con esta macro cada vez que un documento se abre basado en esa plantilla se genera
un número en el archivo "numeracionplantilla.txt" (que por defecto he ubicado en
la raiz del disco C:\, puedes cambiarlo a tu gusto) y se guarda automáticamente
con el nombre correspondiente a esa numeración. También, por defecto he puesto que
los documentos gnerados se guarden en la raiz del disco C:\, cosa que puedes
mmodificar.
Premisas:
1- Abre la plantilla que uses para crear el documento.
2- Inserta, en el encabezado o en el pie de página o donde desees un marcador que
se llame Numero. Para ello vas a Insertar / Marcador y allí escribes Numero y
luego le das a Añadir.
3- Abre el editor de VBA con ALT+F11 y "navega" por el panel de Proyectos hasta tu
plantilla. Una vez situado sobre ella ve al menú Insertar / Módulo.
4- Copia y pega el siguiente código:
Sub AutoNew()
Dim Pordefecto As String
Dim Rango As Range
Pordefecto = "1"
Numero = System.PrivateProfileString("C:umeracionplantilla.txt", _
"MacroSettings", "Numero")
If Numero = "" Then
Numero = 1
End If
Set Rango = ActiveDocument.Bookmarks("Numero").Range
Rango.Delete
Rango.Text = Numero
ActiveDocument.ActiveWindow.Caption = Rango.Text
Numero = Numero + 1
'Guarda el próximo número en el archivo numeracionplantilla.txt listo para su
próximo uso.
System.PrivateProfileString("C:umeracionplantilla.txt", "MacroSettings", _
"Numero") = Numero
'Regenera el marcador para su próximo uso.
With ActiveDocument.Bookmarks
.Add Name:="Numero", Range:=Rango
End With
'Aquí pones la ruta donde desees guardar los documentos generados
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text
End Sub

Pruébala y comenta, por favor.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin garantías
explícitas ni implícitas, y no otorga derecho alguno. Usted asume cualquier riesgo
al poner en práctica lo recomendado o sugerido en el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Hola a todos

Como puedo hacer que cada vez que abra el word, el documento (la plantilla en
este caso) sea numerada.
Me explico mejor, abro el word y el documento tenga el nombre 1234.doc, lo cierro
y cuando abro otra vez la nueva plantilla sea 1235.doc
gracias

Art









Respuesta Responder a este mensaje
#4 Art
11/01/2006 - 11:52 | Informe spam
Perdona por no responderte antes pero he estado un poco liado esta semana me
pongo a probar que tal va.

Muchas gracias

Art

"Marta PM [MVP Office]" escribió en el
mensaje news:uke%
Buff, eso ya es más complicado.
Creo que he conseguido más o menos lo que pides, pero supongo que se
podría optimizar mucho el código. Yo te explico lo que he hecho y tu ves
si se te adapta y si lo puedes mejorar.
Lo primero que debemos hacer es borrar las dos últimas líneas de la macro
anterior, es decir,
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text

Una vez hecho esto en el mismo módulo donde has pegado la macro anterior
copias y pegas las siguientes macros:

Sub Guardar()
ChangeFileOpenDirectory "C:\"
Set Rango = ActiveDocument.Bookmarks("Numero").Range
With Dialogs(wdDialogFileSaveAs)
.Name = Rango.Text
.Show
End With
End Sub

Sub FileSave()
Application.Run MacroName:="Guardar"
End Sub

Sub FileSaveAs()
Application.Run MacroName:="Guardar"
End Sub

Sub AutoClose()
If ActiveDocument.Saved = False Then
Application.Run MacroName:="Guardar"
End If
End Sub

Te explico más o menos lo que hace cada una de ellas:
La primera "Guardar" lo primero que hace es cambiar el directorio por
defecto. Esto puedes ajustarlo a tu gusto. Luego te muestra el cuadro
típico de diálogo de Word con el nombre del documento ya asignado.
La segunda "FileSave" "captura" la orden de Word de Archivo Guardar y
ejecuta la macro "Guardar" que ya sabemos lo que hace.
La tercera hace lo mismo que la anterior, pero con la opción GuardarComo.
Y la última es una macro que se ejecuta cuando cierras el documento sin
haberlo guardado antes.

Por favor, comenta si te ha servido.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin
garantías explícitas ni implícitas, y no otorga derecho alguno. Usted
asume cualquier riesgo al poner en práctica lo recomendado o sugerido en
el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Casi perfecta, muchas gracias

La he estado probando y funciona bastante bien, lo unico es que guarda el
archivo con el numero que
ha creado , automaticamente. Solo abrir la plantilla ya crea el documento
con el numero y a mi me gustaria que no lo creara, si no que al
guardarlo donde yo quisiera, entonces se creara el documento en el disco
duro.

Gracias

Art

"Marta PM [MVP Office]" escribió en el
mensaje news:
Hola:
Mediante una macro lo puedes conseguir. Prueba la siguiente macro a ver
si se ajusta a tus necesidades (puede que se la macro se pueda
optimizar, pues el VBA no es mi fuerte, estoy aprendiendo).
Esta macro es una adaptación de esta macro de Pilar Mueckay [MVP-Office
System] http://pmueckay.mykb.com/Article_CC639.aspx.
Con esta macro cada vez que un documento se abre basado en esa plantilla
se genera un número en el archivo "numeracionplantilla.txt" (que por
defecto he ubicado en la raiz del disco C:\, puedes cambiarlo a tu
gusto) y se guarda automáticamente con el nombre correspondiente a esa
numeración. También, por defecto he puesto que los documentos gnerados
se guarden en la raiz del disco C:\, cosa que puedes mmodificar.
Premisas:
1- Abre la plantilla que uses para crear el documento.
2- Inserta, en el encabezado o en el pie de página o donde desees un
marcador que se llame Numero. Para ello vas a Insertar / Marcador y allí
escribes Numero y luego le das a Añadir.
3- Abre el editor de VBA con ALT+F11 y "navega" por el panel de
Proyectos hasta tu plantilla. Una vez situado sobre ella ve al menú
Insertar / Módulo.
4- Copia y pega el siguiente código:
Sub AutoNew()
Dim Pordefecto As String
Dim Rango As Range
Pordefecto = "1"
Numero = System.PrivateProfileString("C:umeracionplantilla.txt", _
"MacroSettings", "Numero")
If Numero = "" Then
Numero = 1
End If
Set Rango = ActiveDocument.Bookmarks("Numero").Range
Rango.Delete
Rango.Text = Numero
ActiveDocument.ActiveWindow.Caption = Rango.Text
Numero = Numero + 1
'Guarda el próximo número en el archivo numeracionplantilla.txt listo
para su próximo uso.
System.PrivateProfileString("C:umeracionplantilla.txt",
"MacroSettings", _
"Numero") = Numero
'Regenera el marcador para su próximo uso.
With ActiveDocument.Bookmarks
.Add Name:="Numero", Range:=Rango
End With
'Aquí pones la ruta donde desees guardar los documentos generados
ChangeFileOpenDirectory "C:\"
ActiveDocument.SaveAs FileName:=Rango.Text
End Sub

Pruébala y comenta, por favor.
Marta PM
Saúdos/Saludos
MVP Office

(Si quieres escribirme ya sabes lo que no quiero)
Más consejos en www.fermu.com
__________
La información contenida en este mensaje se proporciona "TAL CUAL", sin
garantías explícitas ni implícitas, y no otorga derecho alguno. Usted
asume cualquier riesgo al poner en práctica lo recomendado o sugerido en
el presente mensaje.

¿Quieres saber que es un MVP?
http://mvp.support.microsoft.com/

"Art" escribió en el mensaje
news:
Hola a todos

Como puedo hacer que cada vez que abra el word, el documento (la
plantilla en este caso) sea numerada.
Me explico mejor, abro el word y el documento tenga el nombre 1234.doc,
lo cierro y cuando abro otra vez la nueva plantilla sea 1235.doc
gracias

Art













email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida