** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Foliar Hojas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFoliar Hojas

 Responder Responder
Autor
Mensaje
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Tema: Foliar Hojas
    Enviado: 02/Agosto/2014 a las 01:28
Buenas tardes estimados compañeros.
Tengo una necesidad y es de foliar las hojas para que me salgan al pie de página ejemplo:

Pagina 1: F-1
Pagina 2: R-1
Pagina 3: F-2
Pagina 4: R-2
Pagina 5: F-3
Pagina 6: R-3
Pagina 7: F-4
Pagina 8: R-4
Donde F: es Frente y R es reverso

o sea que la primera pagina sea el Frente de la primera hoja y la segunda pagina el Reverso de la primera hoja y así sucesivamente.



Editado por valejos - 03/Agosto/2014 a las 04:19
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 02/Agosto/2014 a las 18:18
Hola.
El siguiente proceso hace lo que se pide al menos en el Word 2003 y 2013 :
a) El documento se hace con el pie de página diferente para las páginas pares e impares
b) En el pie de las impares se pone F----- y en el de las pares R------
c) A Continuación de lo anterior se insertan ( tanto en las pares como en las impares) de forma adecuada campos(INT, PAGE y  MOD ) unos dentro de los otros con un resultado final con una visual equivalente a :
{ =INT({ PAGE  \* Arabic  \* MERGEFORMAT }/2) + { =MOD({ PAGE  \* Arabic  \* MERGEFORMAT };2) } }
Seguro que hay soluciones directas y por tanto más sencillas, pero………..
Espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos

Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 03/Agosto/2014 a las 02:11
Buenas tardes, gracias por tu apoyo, realmente lo agradezco, he probado como me has indicado pero no lo he podido hacer funcionar, he ingresado el campo en cada pagina de la par e impar
No te pude agregar la imagen para que lo apreciaras
Lo que he querido es que las paginas impares F 1 vaya incrementando ejemplo F 2, F 3, etc, igual para las pares R 1, R 2, R 3, R 4 etc. Quizá este aplicando mal el campa, te agradecería me lo aclares quizá estoy haciendo algo mal, las F y las R van simultáneamente, el inconveniente es al hacer que vaya numerando las pares e impares.
He interpretado el campo PAGE y le he agregado tu fórmula en pares e impares diferentes pero no ha funcionado
Gracias de antemano




Editado por valejos - 03/Agosto/2014 a las 04:22
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 03/Agosto/2014 a las 12:45
Hola.
Pega en thisdocument del vba de un documento nuevo el código siguiente:

Public Sub hacepies()
'Crea pie para páginas pares e impares con 'formula' para paginar por hojas
 ActiveDocument.PageSetup.OddAndEvenPagesHeaderFooter = True
 ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Select
  Selection.InsertAfter "FRONTAL-"
  Selection.MoveRight Unit:=wdCharacter, Count:=1
  Call faformula
 ActiveDocument.Sections(1).Footers(wdHeaderFooterEvenPages).Range.Select
 Selection.InsertAfter "REVERSO-"
 Selection.MoveRight Unit:=wdCharacter, Count:=1
 Call faformula
 ActiveDocument.Sections(1).Range.Select
 Selection.MoveLeft Unit:=wdCharacter, Count:=1
 ActiveWindow.View.Type = wdPrintView
End Sub

Private Sub faformula()
   Selection.InsertFormula Formula:="=INT(44444444/2) + MOD(44444444;2)", NumberFormat:=""
   ActiveDocument.ActiveWindow.View.ShowFieldCodes = True 
    With Selection.Find
        .Text = "44444444"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="PAGE  \* Arabic ", PreserveFormatting:=True
    Selection.Find.Execute
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="PAGE  \* Arabic ", PreserveFormatting:=True
    ActiveDocument.ActiveWindow.View.ShowFieldCodes = False 

End Sub

Sí todo va bien, al ejecutar el procedimiento hacepies , hará lo que se pide
Ya comentas.
Un saludo a todos
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 04/Agosto/2014 a las 03:58
Buenas noches, nuevamente agradezco todo tu esfuerzo yo se que inviertes tu tiempo en dar una solución, y eso merece mucho mérito.
Copié el código a como me lo indicaste lo corrí  y lo único que aparece es un campa en la página que dice " REVERSO-!Error de sintaxis, ;

Me imagino que debe de ser por algo que quizá tu sepas mejor que yo. 
Siempre a la espera de tu colaboración. 
Saludos



Editado por valejos - 04/Agosto/2014 a las 04:15
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 04/Agosto/2014 a las 10:16
Hola 
El código, tal y como está expuesto, está comprobado con máquinas diferentes y las versiones 2003 y 2013 del word del office version 32 bits. Al no poder reproducir el error, pues ???????.
Preguntas.
¿Que versión de word se utiliza?;¿Que idioma?
Al hacer click con botón derecho sobre el error y al activar todos los códigos de campo ¿Qué aparece?
¿El 'frontal' funciona bien?.
Ya comentas.
Un saludo a todos

Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 04/Agosto/2014 a las 21:13
Hola, 
Bueno yo tengo office 2013 64 bits
Idioma español
al hacer click con el botón derecho aparece: = {INT(1/2) + MOD(1;2)} que es igual a !Error de sintaxis, ;
el hacepies corre sin problemas el problema està en "fafaformula
espero tus comentarios
Yo sólo ingresé el código a como lo pediste en  Visual ThisDocument, sin nada más es correcto?
Saludos



Editado por valejos - 04/Agosto/2014 a las 21:17
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 05/Agosto/2014 a las 10:26
Hola.
No lo sé, pero diría que es un problema por lo de los 64 bits.
Prueba:
1º.-Selecciona el 1 de (1/2) y activa códigos de campo, debe aparecer el campo PAGE, lo mismo para el (1;2)
2º.-Pasa el = dentro  o sea: {= INT(1/2) + MOD(1;2)}. 
Desactiva todos los códigos de campo y actualiza el campo, debe dar como resultado 1 ( al menos así da con el 2013 32 bits)
La otra solución pasaría por hacer la formula con el asistente.
Ya comentas
Un saludo a todos
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 05/Agosto/2014 a las 13:58
Buenos días, lo intenté de la manera que me dijiste y lamentablemente no sucedió nada, el mismo error, activando lo códigos fue asì.  FRONTAL-{ =INT({ PAGE  \* Arabic  \* MERGEFORMAT }/2) + MOD({ PAGE  \* Arabic  \* MERGEFORMAT };2) }

Espero haber transcrito bien, ya que al copiar lo que me copiaba era el error. Yo seguiré intentando ya que he logrado interpretar el código que enviaste. Si obtienes otra idea te agradezco de antemano.
Saludos
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 05/Agosto/2014 a las 16:22
Hola.
Posiblemente el problema venga por el separador de lista definido en el windows.
Cambia la primera línea del procedimiento faformula por estas 3 líneas

   Dim miseparadorlistas As String
   miseparadorlistas = Application.International(wdListSeparator)
    Selection.InsertFormula Formula:="=INT(44444444/2) + MOD(44444444" & miseparadorlistas & "2)", NumberFormat:=""

el resto del código todo igual
Ya dices
Un saludo a todos
Arriba
valejos Ver desplegable
Habitual
Habitual


Unido: 02/Agosto/2014
Localización: Nicaragua
Estado: Sin conexión
Puntos: 106
Enlace directo a este mensaje Enviado: 06/Agosto/2014 a las 01:38
Buenas noches Prga, he logrado detectar cual era el inconveniente, al activar o desactivar los códigos de campo el resultado del error se mostraba asì: {= INT(1/2) + MOD(1;2)}. Para corregirlo lo que hice fue cambiar el punto y coma  por coma {= INT(1/2) + MOD(1,2)} para las dos paginas diferentes Frontal y Reverso
Solo te solicito para información a todos los que se venefician de este foro, es que hagas el código para equipos de 64 bits de tal manera que por defecto ponga la "," por ";" y ya con eso quedarían los dos códigos para 32 y 64 bits.
Gracias por tu aporte, te brindo el sombrero como decimos en nuestro país.
Saludos pueden cerrar el caso
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3335
Enlace directo a este mensaje Enviado: 06/Agosto/2014 a las 11:30
Hola 
Justo eso es lo que se pretendía con las modificaciones expuestas en el post anterior.
En general en España ,el separador de listas es el punto y coma (;) y en otros países es la coma(,) por lo que, salvo mejor opinión,  formulas con (;) 'no sirven' en otros lugares. 
En un principio no tiene nada que ver con los 32 o 64 bits del office
Un saludo a todos


Editado por prga - 06/Agosto/2014 a las 11:31
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable