Hola,
En un libro Excel con varias hojas, dependiendo del valor de una celda
concreta de cada hoja, una funcion obtiene el número de la hoja, y otra
cuenta el numero total de hojas hasta la hoja que tiene el valor esperado en
dicha celda. Estas funciones están incluidas en un módulo VBA.
Por otro lado, en otra celda de cada hoja del libro, llamo a esas funciones
desde una formula que me presenta en estas celdas la expresión "Página 1 de
10", "Página 2 de 10", "Página 3 de 10", etc... lo cual es el objetivo que se
pretende, y hace muy cómodo no tener que escribirlo a mano cada vez que
cambie el total de hojas que se van a imprimir y evita errores.
El problema que tengo es que, para tener la expresión esperada en las celdas
que indican las páginas, tengo que Editar (F2) cada celda y aceptar (Intro)
la fórmula. Si no hago esto, conserva siempre el ultimo valor obtenido.
¿Cómo puedo hacer para que se actualicen automáticamente las expresiones,
cada vez que cambie el número total de páginas (1 de 4, 1 de 9, etc..)?
Indico a continuación, por si es útil también para alguien que quiera o
necesite poner la numeración de las páginas en un sitio distinto al Pie de
Página de Excel, el código utilizado.
FUNCIONES:
Function TotalPaginas()
Dim nPaginasCompletas, nPaginasLibro As Integer
nPaginasLibro = Worksheets.Count
For nPaginasCompletas = 1 To nPaginasLibro
If Worksheets(nPaginasCompletas).Range("k51").Value = "TOTAL €UROS" Then
If nPaginasCompletas < nPaginasLibro Then
TotalPaginas = nPaginasCompletas
GoTo Finalizar
Else
TotalPaginas = nPaginasLibro
End If
End If
Next
Finalizar:
End Function
Function NumeroHoja()
NumeroHoja = ActiveSheet.Index
End Function
************************************
En la celda donde presento "Página 1 de 5" o lo que sea, la formula es:
="Página " &NumeroHoja()& " de " &TotalPaginas()
Gracias por vuestra ayuda.
Leer las respuestas