Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Limitar el rango de movimiento a una área determinada

| 2 comentarios

Mediante este procedimiento se logra seleccionar una hoja especifica al abrir el libro, ademas de limitar el rango de movimiento sobre una área determinada. Este procedimiento resulta útil cuando se desea restringir el ingreso manual de datos en algunas celdas de una hoja especifica.

Para ello, mediante el lenguaje VBA se puede crear una macro que nos permita realizar lo antes mencionado.

Sin embargo,  es necesario tener las siguientes consideraciones:

  • La hoja a seleccionarse debe tener un nombre especifico y único para evitar la selección de otras hojas que no son de nuestro interés.
  • Se debe definir el rango de celdas donde se podrán ingresar datos.
  • El lenguaje de programación de VBA debe residir necesariamente en el modulo ThisWorkbook, como se muestra en la siguiente imagen.

Imagen hoja limitada_3

(Para mayor visualización de la imagen, hacer click en la misma)

Como se observa en la imagen anterior, el lenguaje VBA que nos permitirá realizar esta tarea es la siguiente:

Private Sub Workbook_Open()

Sheets("hoja1").ScrollArea = "A1:L17"

End Sub

Nota: El nombre de este procedimiento es reservado y ejecuta su contenido al abrir el libro. El limite de rango de movimiento es desde la celda A1 hasta la celda L17.

Otra alternativa es la de crear el procedimiento en un modulo estándar con el siguiente lenguaje:

Sub Auto_Open()

Sheets("hoja1").ScrollArea = "A1:L17"

End Sub

Nota: El nombre de este procedimiento también es reservado y ejecuta su contenido al abrir el libro.

A continuación muestro una imagen de esta alternativa:

Imagen hoja limitada_4

(Para mayor visualización de la imagen, hacer click en la misma)

 

Eliminar limites de movimiento

Si luego se desea eliminar los limites establecidos, se pueden quitar estos mediante el uso de otro procedimiento con el siguiente lenguaje:

Sub Quitar_limites()
ActiveSheet.ScrollArea = ""
End Sub

A continuación muestro una imagen de este procedimiento:

Imagen hoja limitada_5

(Para mayor visualización de la imagen, hacer click en la misma)

 

Finalmente dejo un ejemplo de este procedimiento hecho  en el modulo ThisWorkbook:

Ejemplo Limitar el rango de movimiento a una area determinada

Elaborado por: John Garcia

 

2 comentarios

  1. Saludo, Fernando.

    En mi caso, he elaborado una hoja plantilla que está oculta. Al presionar un botón ejecuta una macro que copia esa hoja oculta y nombra la nueva hoja generada con un consecutivo, que es donde se guardan datos nuevos.

    La hoja oculta se llama LIM (Hoja limitada) que tiene un rango visible $A$1:$F$70. Las nuevas que se generan se nombran LIM1; LIM2;LIM3 y así sucesivamente.

    Todas esas hojas las necesito limitadas en el mismo rango. ¿Qué código VBA me servirá para limitarlas, una vez generadas y cada vez que la hoja esté activa?

    ¿Podría ser con una macro que cada vez que el libro se abra verifique todas las hojas que en su izquierda empiecen con "LIM" y a todas ellas las limite en dicho rango?

    ¿Cómo se hace?

    Agradezco de antemano la ayuda.

    Saludos

  2. hola, me muestra un error 9 al abrir el documento, porq pasa eso?

Deja una respuesta

Los campos requeridos estan marcados con *.