¿CÓMO OBTENER EL VALOR DE LA CELDA ACTIVA CON VBA?

0
259
Slider

Cuando comienzas a usar macros, una de las primeras cosas que haces, es recuperar el valor de una celda. De acuerdo, a los temas publicados sobre el tema y si tienes claro lo que son las macros en Excel. Lo primero que harás, será crear una función y lo harás directamente en el editor de VBA. El nombre de la función podría ser por ejemplo: obtenerValorCeldaActiva()

De los millones de celdas contenidas en una hoja de Excel, solamente una de ellas será la celda activa en un momento determinado y estará identificada por un borde negro y su referencia aparecerá en el cuadro de nombres ubicado junto a la barra de fórmulas. En la siguiente imagen podremos ver que la celda activa es la celda B2:

Inclusive cuando seleccionamos un rango de celdas, solamente una de ellas será la celda activa. Por ejemplo, si selecciono el rango B2:D5, solamente la celda B2 tendrá el color blanco de fondo indicando que sigue siendo la celda activa, además de que su referencia seguirá apareciendo en el cuadro de nombres:

Si después de seleccionar un rango de celdas ingresas cualquier valor y pulsas la tecla Entrar, dicho valor será ingresado solamente en la celda activa. Si quisieras que un mismo valor fuera ingresado en todas las celdas del rango, entonces deberás ingresar el valor en la celda activa y pulsar la combinación de teclas Ctrl + Entrar.

Ya que la celda activa juega un papel de mucha importancia en Excel, es importante aprender a trabajar con dicha celda desde nuestro código VBA.

LA CELDA ACTIVA EN VBA

La celda activa es un objeto que ya está preparado para su uso, así que no tendremos que hacer ningún paso previo. Para trabajar con este tipo de objetos, basta con que lo invoquemos, haciendo uso de su nombre. En este caso, el nombre del objeto Celda Activa es ActiveCell.

La celda activa en VBA está entonces representada por la propiedad ActiveCell del objeto Application y es a través de dicha propiedad que podremos obtener mucha información sobre la celda activa de Excel. La propiedad ActiveCell nos devolverá un objeto Range que tendrá sus propias propiedades y métodos con los que podremos trabajar.

Por ejemplo, podemos utilizar la propiedad Address para obtener la dirección de la celda activa. Para nuestro primer ejemplo comenzaré por hacer clic derecho sobre la etiqueta de la hoja y seleccionaré la opción “Ver código”.

previous arrow
next arrow
Slider

Posteriormente, de la lista desplegable de objetos, seleccionaré el objeto Worksheet y de la lista de procedimientos elegiré el evento SelectionChange e ingresaré una sola línea de código donde utilizaré la función MsgBox y la propiedad Address del objeto ActiveCell de la siguiente manera:

El evento SelectionChange será ejecutado cada vez que seleccionemos una celda diferente dentro de nuestra hoja y la función MsgBox mostrará un mensaje con la dirección de la celda activa. Al seleccionar una nueva celda con el teclado o el ratón obtendremos un mensaje como el siguiente:

FILA Y COLUMNA DE LA CELDA ACTIVA

Si en lugar de obtener la referencia completa da la celda activa estamos interesados en obtener su fila o su columna, entonces podemos utilizar las propiedades Row y Column respectivamente. Para este ejemplo seguiré los mismos pasos de la sección anterior y colocaré el siguiente código en el evento SelectionChange:

Al cambiar la selección de celdas en nuestra hoja, obtendremos un mensaje que incluirá la fila y columna de la celda activa.

EL VALOR DE LA CELDA ACTIVA

Para obtener el valor de la celda activa podemos utilizar la propiedad Value y para mostrarlo haré un ejemplo similar a los anteriores utilizando el siguiente código:

Al seleccionar una nueva celda, y convertirla en la celda activa, observaremos un mensaje que desplegará su valor:

Si quieres modificar el valor de la celda activa deberás utilizar la misma propiedad pero haciendo una asignación con el símbolo igual. Por ejemplo, para hacer que la celda activa tenga la cadena de texto “Excel Total” debemos utilizar la siguiente línea de código:

ActiveCell.Value = "PeruContable"

CAMBIAR LA CELDA ACTIVA DESDE VBA

Además de obtener información sobre la celda activa en Excel es común tener la necesidad de cambiar la celda activa desde código VBA. Para realizar esta acción no podemos utilizar la propiedad ActiveCell sino que debemos utilizar el método Activate de cualquier objeto Range. Por ejemplo, si queremos hacer que la celda B5 se convierta en la celda activa, podemos incluir la siguiente línea de código:

Range("B5").Activate

Ya que siempre estamos interactuando con la celda activa en Excel es importante familiarizarnos con la propiedad ActiveCell de manera que podamos acceder a su valor y propiedades desde nuestro código VBA. Una vez que te familiarices con el trabajo de la celda activa se recomienda ver el uso de otras propiedades del objeto ActiveCell.

Artículo que te recomendamos leer:
CAMBIAR NÚMEROS GRANDES EN EXCEL

¿Qué te pareció nuestra blog? Coméntanos.



CURSO DE ESPECIALIZACIÓN: EXCEL EMPRESARIAL INTERMEDIO

📆 Fechas: Martes y jueves: 21/09, 23/09, 28/09, 30/09 de setiembre, 05/10, 07/10, 12/10 y 14/10 de octubre.
⏰ Horario: 7:00 pm – 10:00 pm
Duración: 8 sesiones,1 mes.

Mayor información: https://wa.link/wnukin

Comentarios
Slider