¿Se puede incrementar un numero al abrir una template en word?

15/10/2006 - 21:06 por Jose Luis | Informe spam
Necesito incrementar un numero que contiene el numero de factura de una
template en Word, a la cual le añado automaticamente la fecha y la hora pero
no se como puedo incrementar un número de manera automatica cada vez que se
abre la template.
¿Se puede hacer?

Preguntas similare

Leer las respuestas

#1 David
16/10/2006 - 17:30 | Informe spam
Hola, José Luis.

Lo que intentas lo puedes hacer si combinas campos con un poco de
programación VBA. No es difícil, y aún cuando no sepas el lenguaje lo puedes
hacer, si sigues cuidadosamente las instrucciones siguientes.

Primero, debes insertar un campo numérico en tu documento. Ese campo
numérico llevará el control del número correlativo. Segundo, deberás ajustar
el nivel de seguridad de tu Word para permitirte utilizar macros. Tercero,
deberás copiar un pequeño macro en el evento "Document_Open". Y Cuarto,
necesitarás eventualmente modificar el correlativo, por cualquier imprevisto.

Vamos ahora con el proceso. Te sugiero que cierres todos los documentos, y
abras solamente el que contendrá el correlativo.

PRIMERO: Inserta el campo numérico...

1. Sitúa el cursor en el lugar donde deseas el correlativo.

2. Activa la barra de herramientas Formularios ("Ver" - "Barras de
herramientas" - "Formularios")

3. Haz clic en el botón "Campo con Texto".

4. Inmediatamente, haz clic en el botón "Opciones de campos de formulario"

5. En el cuadro de diálogo haces las siguientes selecciones:
En "Tipo": Seleccionas "Número".
En "Número predeterminado", escribes 0 (cero) o el valor inicial.
En "Marcador", escribes "Correlativo" (este será el nombre de tu campo).

6. Haz clic en el botón "Aceptar".

7. Cierra la barra de herramientas Formulario


SEGUNDO: Ajustas el nivel de seguridad...

1. Haga clic en "Herramientas" - "Macro" - "Seguridad", y establezca el
nivel "Medio".


TERCERO: Copias el macro...

1. Haz clic en "Herramientas" - "Macro" - "Editor de Visual Basic".

2. Para asegurarte que se encuentre disponible el Explorador de Proyectos,
pulsa F2.

3. El explorador de proyectos es una lista jerárquica, parecida a la lista
de carpetas del Explorador de Windows. Se muestra por lo regular en la
esquina superior izquierda del Editor de VBA. En esta lista, localiza el
proyecto correspondiente al documento que estás editando: Project
(NombreDocumento), y expándelo. Si es necesario, expande las carpetas del
proyecto, hasta localizar el elemento "ThisDocument".

4. Haz doble clic en el elemento ThisDocument. Al lado derecho se mostrará
una ventana en blanco para la edición del código.

5. Copia y pegas a esta ventana lo siguiente:
Private Sub Document_Open()
ActiveDocument.FormFields("Correlativo").Result =
ActiveDocument.FormFields("Correlativo").Result + 1
End Sub

NOTA: Son tres líneas: Private..., ActiveDocument... y End Sub. La de
enmedio puede dividirse en dos por espacio en el editor del foro. Si fuera
así, asegúrate de volver a unirla en una sola.

6. Cierras el Editor de Visual Basic. (No es necesario guardar).

7. Guarda y cierra el documento.

8. Vuelves a abrir el documento (asegúrate de habilitar las macros) y
observa si se actualizó el correlativo.



CUARTO: Cuando necesites actualizar el número del correlativo...

1. Haz clic derecho en el número del correlativo, y luego en "Propiedades".

2. Modifica el valor del correlativo en el cuadro "Número predeterminado".

3. Guarda y cierra su documento.


¿Difícil? Aparentemente, pero créeme no lo es. Tal vez un poco largo, pero
vale la pena.

Comentas si encuentras dificultades al implementarlo.

Saludos.



"Jose Luis" escribió:

Necesito incrementar un numero que contiene el numero de factura de una
template en Word, a la cual le añado automaticamente la fecha y la hora pero
no se como puedo incrementar un número de manera automatica cada vez que se
abre la template.
¿Se puede hacer?
Respuesta Responder a este mensaje
#2 Jose Luis
17/10/2006 - 23:16 | Informe spam
Muchas gracias David.

Lo he podido hacer y me ha resultado super práctico.

Después de haber perdido horas y horas buscando explicaciones por el Google,
vas tú y me lo resuelves a la primera.

Como dice el dicho: El que sabe, sabe.

MUCHISIMAS GRACIAS DE TODO CORAZÓN.

"David" escribió:

Hola, José Luis.

Lo que intentas lo puedes hacer si combinas campos con un poco de
programación VBA. No es difícil, y aún cuando no sepas el lenguaje lo puedes
hacer, si sigues cuidadosamente las instrucciones siguientes.

Primero, debes insertar un campo numérico en tu documento. Ese campo
numérico llevará el control del número correlativo. Segundo, deberás ajustar
el nivel de seguridad de tu Word para permitirte utilizar macros. Tercero,
deberás copiar un pequeño macro en el evento "Document_Open". Y Cuarto,
necesitarás eventualmente modificar el correlativo, por cualquier imprevisto.

Vamos ahora con el proceso. Te sugiero que cierres todos los documentos, y
abras solamente el que contendrá el correlativo.

PRIMERO: Inserta el campo numérico...

1. Sitúa el cursor en el lugar donde deseas el correlativo.

2. Activa la barra de herramientas Formularios ("Ver" - "Barras de
herramientas" - "Formularios")

3. Haz clic en el botón "Campo con Texto".

4. Inmediatamente, haz clic en el botón "Opciones de campos de formulario"

5. En el cuadro de diálogo haces las siguientes selecciones:
En "Tipo": Seleccionas "Número".
En "Número predeterminado", escribes 0 (cero) o el valor inicial.
En "Marcador", escribes "Correlativo" (este será el nombre de tu campo).

6. Haz clic en el botón "Aceptar".

7. Cierra la barra de herramientas Formulario


SEGUNDO: Ajustas el nivel de seguridad...

1. Haga clic en "Herramientas" - "Macro" - "Seguridad", y establezca el
nivel "Medio".


TERCERO: Copias el macro...

1. Haz clic en "Herramientas" - "Macro" - "Editor de Visual Basic".

2. Para asegurarte que se encuentre disponible el Explorador de Proyectos,
pulsa F2.

3. El explorador de proyectos es una lista jerárquica, parecida a la lista
de carpetas del Explorador de Windows. Se muestra por lo regular en la
esquina superior izquierda del Editor de VBA. En esta lista, localiza el
proyecto correspondiente al documento que estás editando: Project
(NombreDocumento), y expándelo. Si es necesario, expande las carpetas del
proyecto, hasta localizar el elemento "ThisDocument".

4. Haz doble clic en el elemento ThisDocument. Al lado derecho se mostrará
una ventana en blanco para la edición del código.

5. Copia y pegas a esta ventana lo siguiente:
Private Sub Document_Open()
ActiveDocument.FormFields("Correlativo").Result =
ActiveDocument.FormFields("Correlativo").Result + 1
End Sub

NOTA: Son tres líneas: Private..., ActiveDocument... y End Sub. La de
enmedio puede dividirse en dos por espacio en el editor del foro. Si fuera
así, asegúrate de volver a unirla en una sola.

6. Cierras el Editor de Visual Basic. (No es necesario guardar).

7. Guarda y cierra el documento.

8. Vuelves a abrir el documento (asegúrate de habilitar las macros) y
observa si se actualizó el correlativo.



CUARTO: Cuando necesites actualizar el número del correlativo...

1. Haz clic derecho en el número del correlativo, y luego en "Propiedades".

2. Modifica el valor del correlativo en el cuadro "Número predeterminado".

3. Guarda y cierra su documento.


¿Difícil? Aparentemente, pero créeme no lo es. Tal vez un poco largo, pero
vale la pena.

Comentas si encuentras dificultades al implementarlo.

Saludos.



"Jose Luis" escribió:

> Necesito incrementar un numero que contiene el numero de factura de una
> template en Word, a la cual le añado automaticamente la fecha y la hora pero
> no se como puedo incrementar un número de manera automatica cada vez que se
> abre la template.
> ¿Se puede hacer?
Respuesta Responder a este mensaje
#3 Hugo Miguel Angel
26/04/2008 - 23:05 | Informe spam
Tengo otra pequeña solución.

Probé tu solución y funciona aunque sólo al abrir el mismo archivo.

No me funcionó en una plantilla para cada vez que necesitaba crear un nuevo
documento basado en esa plantilla. Asi que modifiqué ligeramente el código
asi.

Primero, no usé la opción formularios, sino que cree una propiedad
configurable (Propiedades del documento, Personalizar) que llamé Folio. Bueno
esto por gusto, me imagino que usando formulario también serviría.

Luego en VB, en ThisDocument

pegué lo siguiente:


Private Sub Document_New()
Dim Folio As Integer

Folio = Templates(1).CustomDocumentProperties("Folio").Value
Templates(1).CustomDocumentProperties("Folio").Value = _
Templates(1).CustomDocumentProperties("Folio").Value + 1
Templates(1).Save
On Error Resume Next
ActiveDocument.CustomDocumentProperties("Folio").Value = Folio

End Sub


Luego en el documento plantilla (yo lo hice en la cabecera) pegué el campo

{DOCPROPERTY Folio \*mergeformat}

(Insertar, campo, Inf. Documento, DocProperty, busqué la etiqueta creada
Folio y acepté)

Guardé la plantilla y listo.
Cada vez que creo un documento nuevo, se actualiza la plantilla con esa
opción.

Por lo menos a mi me funciona, el único problema es que se contabiliza cada
vez que creas un nuevo documento, lo guardes o no, lo imprimas o no.

Habían otras opciones para detectar esos eventos, pero había que configurar
y la idea era que fuera lo más transparente posible.

Esto lo usé para controlar los documentos que se crean en una organización.

Saludos,
Muchisimas Gracias,
Visitame en:
www.mensajerosdeluz.com


"David" wrote:

Hola, José Luis.

Lo que intentas lo puedes hacer si combinas campos con un poco de
programación VBA. No es difícil, y aún cuando no sepas el lenguaje lo puedes
hacer, si sigues cuidadosamente las instrucciones siguientes.

Primero, debes insertar un campo numérico en tu documento. Ese campo
numérico llevará el control del número correlativo. Segundo, deberás ajustar
el nivel de seguridad de tu Word para permitirte utilizar macros. Tercero,
deberás copiar un pequeño macro en el evento "Document_Open". Y Cuarto,
necesitarás eventualmente modificar el correlativo, por cualquier imprevisto.

Vamos ahora con el proceso. Te sugiero que cierres todos los documentos, y
abras solamente el que contendrá el correlativo.

PRIMERO: Inserta el campo numérico...

1. Sitúa el cursor en el lugar donde deseas el correlativo.

2. Activa la barra de herramientas Formularios ("Ver" - "Barras de
herramientas" - "Formularios")

3. Haz clic en el botón "Campo con Texto".

4. Inmediatamente, haz clic en el botón "Opciones de campos de formulario"

5. En el cuadro de diálogo haces las siguientes selecciones:
En "Tipo": Seleccionas "Número".
En "Número predeterminado", escribes 0 (cero) o el valor inicial.
En "Marcador", escribes "Correlativo" (este será el nombre de tu campo).

6. Haz clic en el botón "Aceptar".

7. Cierra la barra de herramientas Formulario


SEGUNDO: Ajustas el nivel de seguridad...

1. Haga clic en "Herramientas" - "Macro" - "Seguridad", y establezca el
nivel "Medio".


TERCERO: Copias el macro...

1. Haz clic en "Herramientas" - "Macro" - "Editor de Visual Basic".

2. Para asegurarte que se encuentre disponible el Explorador de Proyectos,
pulsa F2.

3. El explorador de proyectos es una lista jerárquica, parecida a la lista
de carpetas del Explorador de Windows. Se muestra por lo regular en la
esquina superior izquierda del Editor de VBA. En esta lista, localiza el
proyecto correspondiente al documento que estás editando: Project
(NombreDocumento), y expándelo. Si es necesario, expande las carpetas del
proyecto, hasta localizar el elemento "ThisDocument".

4. Haz doble clic en el elemento ThisDocument. Al lado derecho se mostrará
una ventana en blanco para la edición del código.

5. Copia y pegas a esta ventana lo siguiente:
Private Sub Document_Open()
ActiveDocument.FormFields("Correlativo").Result =
ActiveDocument.FormFields("Correlativo").Result + 1
End Sub

NOTA: Son tres líneas: Private..., ActiveDocument... y End Sub. La de
enmedio puede dividirse en dos por espacio en el editor del foro. Si fuera
así, asegúrate de volver a unirla en una sola.

6. Cierras el Editor de Visual Basic. (No es necesario guardar).

7. Guarda y cierra el documento.

8. Vuelves a abrir el documento (asegúrate de habilitar las macros) y
observa si se actualizó el correlativo.



CUARTO: Cuando necesites actualizar el número del correlativo...

1. Haz clic derecho en el número del correlativo, y luego en "Propiedades".

2. Modifica el valor del correlativo en el cuadro "Número predeterminado".

3. Guarda y cierra su documento.


¿Difícil? Aparentemente, pero créeme no lo es. Tal vez un poco largo, pero
vale la pena.

Comentas si encuentras dificultades al implementarlo.

Saludos.



"Jose Luis" escribió:

> Necesito incrementar un numero que contiene el numero de factura de una
> template en Word, a la cual le añado automaticamente la fecha y la hora pero
> no se como puedo incrementar un número de manera automatica cada vez que se
> abre la template.
> ¿Se puede hacer?
Respuesta Responder a este mensaje
#4 Monica May
01/05/2008 - 02:28 | Informe spam
hola Hugo :-)

Gracias por el aporte ;-) !!

Saludos
Monica

"Hugo Miguel Angel" escribió en el mensaje de
noticias news:
Tengo otra pequeña solución.

Probé tu solución y funciona aunque sólo al abrir el mismo archivo.

No me funcionó en una plantilla para cada vez que necesitaba crear un
nuevo
documento basado en esa plantilla. Asi que modifiqué ligeramente el código
asi.

Primero, no usé la opción formularios, sino que cree una propiedad
configurable (Propiedades del documento, Personalizar) que llamé Folio.
Bueno
esto por gusto, me imagino que usando formulario también serviría.

Luego en VB, en ThisDocument

pegué lo siguiente:


Private Sub Document_New()
Dim Folio As Integer

Folio = Templates(1).CustomDocumentProperties("Folio").Value
Templates(1).CustomDocumentProperties("Folio").Value = _
Templates(1).CustomDocumentProperties("Folio").Value + 1
Templates(1).Save
On Error Resume Next
ActiveDocument.CustomDocumentProperties("Folio").Value = Folio

End Sub


Luego en el documento plantilla (yo lo hice en la cabecera) pegué el campo

{DOCPROPERTY Folio \*mergeformat}

(Insertar, campo, Inf. Documento, DocProperty, busqué la etiqueta creada
Folio y acepté)

Guardé la plantilla y listo.
Cada vez que creo un documento nuevo, se actualiza la plantilla con esa
opción.

Por lo menos a mi me funciona, el único problema es que se contabiliza
cada
vez que creas un nuevo documento, lo guardes o no, lo imprimas o no.

Habían otras opciones para detectar esos eventos, pero había que
configurar
y la idea era que fuera lo más transparente posible.

Esto lo usé para controlar los documentos que se crean en una
organización.

Saludos,
Muchisimas Gracias,
Visitame en:
www.mensajerosdeluz.com



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