A continuación vamos a ver un programa en Excel VBA que pone de relieve la fila y columna de la celda activa (celda seleccionada). Este programa va a sorprender e impresionar a su jefe.

Situación:

Highlight Active Cell in Excel VBA

Cada vez que cambie la celda activa en Sheet1, una macro debe ser ejecutado. Usted puede lograr esto mediante la creación de un evento SelectionChange Hoja de trabajo.

  1. Abra el Editor de Visual Basic.

  2. Haga doble clic en Hoja1 (Sheet1) en el Explorador de proyectos.

  3. Seleccione la hoja de trabajo de la lista desplegable izquierda. Elija SelectionChange de la lista desplegable-derecha.

Worksheet SelectionChange Event in Excel VBA

Añadir las siguientes líneas de código al evento SelectionChange Hoja de trabajo:

  1. Declaramos cuatro variables de tipo entero. Una llamada rowNumberValue, uno llamado columnNumberValue, uno llamado I y uno llamado j.

Dim rowNumberValue As Integer, columnNumberValue As Integer, i As Integer, j As Integer
  1. En primer lugar, añadir la línea que cambia el color de fondo de todas las células a ‘Sin relleno’.

Cells.Interior.ColorIndex = 0
  1. inicializar la variable rowNumberValue con el número de fila de la celda activa y la variable columnNumberValue con el número de columna de la celda activa.

rowNumberValue = ActiveCell.row

columnNumberValue = ActiveCell.column
  1. Destacamos la columna azul. Esto es: todas las células con número de fila menor o igual a rowNumberValue y número de columna igual a columnNumberValue

For i = 1 To rowNumberValue

Cells(i, columnNumberValue).Interior.ColorIndex = 37

Next i

Explicación: para este ejemplo (véase la imagen de arriba), rowNumberValue es igual a 12 y columnNumberValue es igual a 8. Las líneas de código entre For y Next será ejecutado doce veces. Para i = 1, Excel VBA colores de la celda en la intersección de la fila 1 y la columna 8. Para i = 2, Excel VBA colores de la celda en la intersección de la fila 2 y la columna 8, etc.

Nota: en lugar de ColorIndex número 37 (azul), se puede utilizar cualquier número ColorIndex.

  1. De manera similar, podemos destacar el azul fila. Esto es: todas las células con número de fila iguales a rowNumberValue y número de columna más pequeña o igual a columnNumberValue.

For j = 1 To columnNumberValue

Cells(rowNumberValue, j).Interior.ColorIndex = 37

Next j
  1. Ahora es el momento para probar el programa. Descargar el archivo de Excel y ver cómo la fila y columna de la celda activa se destacan cada vez que cambie la celda activa.