Desplazar celda activa N número de posiciones

Para darle un poco más de contenido a la última entrega donde tenemos 4 macros para realizar el desplazamiento de la celda activa en cualquier dirección, le vamos a agregar un elemento con el cual podamos indicar cuantas celdas se debe desplazar la celda activa; en todos los ejemplos anteriores la celda activa se desplaza una por una y esto es porque el valor que hemos dado en los argumentos Fila y Columna son entre -1 y 1, pero también podemos indicar 2, 3, -5, -2. Recordemos el código que utilizaremos en las siguientes entregas y que nos servirá para realizar cualquier tipo de desplazamiento:

ActiveCell.Offset(Filas, Columnas).Select

Esta instrucción lo que hace es partir desde la celda activa (ActiveCell) de donde utiliza la propiedad de desplazamiento (Offset). Para indicar en qué dirección y la cantidad de celdas se debe utilizar los argumentos Filas y Columnas que tenemos entre paréntesis de la siguiente manera:

  • Si el valor en Filas en positivo lo que estamos indicando es que el desplazamiento es hacia abajo ()
  • Si el valor en Filas en negativo lo que estamos indicando es que el desplazamiento es hacia arriba. ()
  • Si el valor en Filas en igual a cero (0) lo que estamos indicando es que no se realizará un desplazamiento en las Filas.
  • Si el valor en Columnas en positivo lo que estamos indicando es que el desplazamiento es hacia la derecha. ()
  • Si el valor en Columnas en negativo lo que estamos indicando es que el desplazamiento es hacia la izquierda. ().
  • Si el valor en Columnas en igual a cero (0) lo que estamos indicando es que no se realizará un desplazamiento en las Columnas.

Abrimos el editor de Visual Basic (Alt + F11) y damos doble clic sobre la Hoja1 en el explorador de proyectos para activar el espacio de edición de macros en el editor donde veremos las 4 macros del ejercicio anterior:

Nos ubicamos al principio de todas las macros y pegamos el siguiente código:

Dim Posiciones As Integer

Ahora estamos viendo una aplicación más de las variables que ya repasamos en entregas pasadas; se trata de crear una variable “global”, es decir, es una variable que podemos utilizar en cualquiera de las cuatro macros que tenemos. Con esta variable lo que vamos a hacer es guardar el número de posiciones que queramos mover la celda activa y este número lo vamos a indicar en la celda E4 de la hoja:

El siguiente paso es incluir el siguiente código antes de la línea donde aplicamos el código de desplazamiento Offset en las 4 macros:

Posiciones = Range("E4").Value

Con este código lo que estamos haciendo es grabando en la variable Posiciones, el número de posiciones que queremos que se desplace la celda activa y ese número es el que indicamos en la celda E4 de la hoja de Excel.

El último paso es cambiar los argumentos Fila y Columna que son diferentes de 0 en cada macro:

De esta manera, al ejecutar la macro en la instrucción de desplazamiento, se tomará no un valor fijo como antes sino una variable que tiene guardado el número que indiquemos en la celda E4. Al dar clic en cualquiera de las flechas, veremos que la celda activa se desplaza tantas veces como se indique en la celda E4 y podremos cambiar dicho valor cuando se requiera:

Descargar archivo de trabajo.

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.