A continuación vamos a ver un programa en Excel VBA que los colores el valor máximo de un rango dinámico.

Situación:

Cada vez que añada un número y haga clic en el botón de comando, queremos Excel VBA para colorear el valor máximo de estos números.

Dynamic Range in Excel VBA

Coloque un botón de comando en la hoja de trabajo y añadir las líneas de código siguientes:

  1. En primer lugar, declaramos una variable y dos objetos Range. Una variable de tipo doble que llamamos máxima. Llamamos a la gama de objetos RNG y celular.

Dim maximum As Double, rng As Range, cell As Range
  1. Añadimos la línea que cambia el color de fondo de todas las células a ‘Sin relleno’.

Cells.Interior.ColorIndex = 0
  1. inicializamos RNG con los números. Usamos el enlace: / VBA-ejemplos-CurrentRegion [CurrentRegion] propiedad por éste. CurrentRegion es útil cuando no conocemos los límites exactos de un rango de antemano.

Set rng = Range("A1").CurrentRegion
  1. inicializamos máxima con el valor máximo de los números. Usamos la función de hoja de Max para encontrar el valor máximo.

maximum = WorksheetFunction.Max(rng)
  1. Por último, coloreamos el valor máximo. Utilizamos un For Each bucle siguiente.

For Each cell In rng

If cell.Value = maximum Then cell.Interior.ColorIndex = 22

Next cell

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

  1. Añadir un número.

Como resultado al hacer clic en el botón de comando en la hoja:

Dynamic Range Result