miércoles, 29 de junio de 2011

Cómo desplazarse por las hojas de un libro con macros.

En la entrada HIPERVINCULO asociado a un desplegable de celda validada vimos una manera de moverse entre las diferentes hojas de nuestros libros de trabajo empleando la función HIPERVINCULO, siempre en función de un desplegable extraido de una celda validada tipo lista.
En esta entrada relacionada obtendremos un resultado similar pero utilizando macros.
Nuestro punto de partida es idéntico al de la entrada anteriormente comentada, esto es, incluiremos en cada hoja de trabajo, por ejemplo en las celdas A1, una celda validada tipo lista, con elementos los nombres de nuestras hojas Hoja1, Hoja2 y Hoja3

HIPERVINCULO  asociado a un desplegable de celda validada.


El siguiente paso será incluir nuestro código VBA en cada una de las hojas del Explorador de proyectos dentro del Editor de VBA (Alt+F11), ya que el procedimiento que emplearemos es el evento change:

Private Sub Worksheet_Change(ByVal Target As Range)
'cuando la celda seleccionada sea la celda A1 de la hoja activa
If Target.Address = Range("A1").Address Then
'entonces activaremos/seleccionaremos la hoja del libro
'cuyo nombre o valor refleje la celda activa.
Sheets(Target.Value).Select
End If
End Sub


Con esta macro tan sencilla conseguimos igual efecto que con la función HIPERVINCULO, esto es, según seleccionemos una hoja de trabajo u otra desde la celda A1 validada, la macro nos llevará a dicha hoja.
Es importante remarcar que para que esta macro funcione correctamente los valores de la celda validada sólo pueden ser o bien los nombre reales de las hojas de trabajo o bien la numeración ordinal (1, 2, 3 ...) que corresponderían a cada hoja de nuestro Libro; esto es así por que el código VBA de la macro incluye la instrucción Sheets que únicamente admite estos dos valores.

No hay comentarios:

Publicar un comentario en la entrada