Lección 19: Identificar máximo y mínimo de un rango de números con macros.

Escrito por Administrador

24 de agosto de 2021

En esta lección vas a aprender cómo identificar el valor máximo y mínimo de un rango de números de una manera muy sencilla.

Existen una serie de funciones (aplicaciones ya desarrolladas) que vienen “de serie” en vba. Ya hemos visto alguna y hoy vamos a ver dos más, una para calcular el máximo y otra para calcular el mínimo de un rango de números.

1. Application.max(Range). Máximo valor de un rango.

Application.max(Range("D5:D20"))

2. Application.min(Range). Mínimo valor de un rango.

Application.min(Range("D5:D20"))

Como ves es muy fácil, tan solo tienes que llamar a la función, le dices el rango de números y ya está.

Vamos a poner algún ejemplo para verle utilidad al invento.

Crea un nuevo libro, abre el editor VBA e inserta 2 módulos. Copia en ellos las siguientes macros.

Macro 1

Sub Leccion19_1()

'Macro que identifica al alumno con mejor nota y lo marca en azul

'Guardamos en la variable mejornota el máximo del rango C2-C12

mejornota = Application.Max(Range("D2:D12"))                                        

For i = 2 To 12

'Si la nota coincide con la mejor nota, entonces

If Cells(i, "D").Value = mejornota Then                                           

'Colorea de azul el nombre, apellido y nota       

Range(Cells(i, "B"), Cells(i, "D")).Interior.Color = RGB(90, 138, 198)     

End If

Next

End Sub

Macro 2

Sub Leccion19_2()

'Macro que identifica al alumno con peor nota y lo marca en rojo

'Guardamos en la variable peornota el mínimo del rango C2-C12

peornota = Application.Min(Range("D2:D12"))                                                           

For i = 2 To 12

'Si la nota coincide con la mejor nota, entonces

If Cells(i, "D").Value = peornota Then

'Colorea de azul el nombre, apellido y nota                                                                 

Range(Cells(i, "B"), Cells(i, "D")).Interior.Color = RGB(248, 105, 107)                   

End If

Next

End Sub

Macro 3

Sub Leccion19_3()

'Macro que restablece la hoja de cálculo

'Quita el color de fondo del rango

Range("B2:D12").Interior.Color = RGB(255, 255, 255)        

'Estos tres comandos reestablecen la cuadrícula de la hoja excel                           

Range("B2:D12").Interior.Pattern = xlNone

'Estos tres comandos reestablecen la cuadrícula de la hoja excel                                                        

Range("B2:D12").Interior.TintAndShade = 0     

'Estos tres comandos reestablecen la cuadrícula de la hoja excel                                                         

Range("B2:D12").Interior.PatternTintAndShade = 0                                    

End Sub

Ahora rellenamos la hoja tal y como se muestra en la figura. Para ello tendrás que crear 3 botones y asignarles las macros anteriores.

total-operaciones-matematicas-macros

La primera de las macros va a localizar al alumno que tiene la mejor nota (o alumnos si hay varios que comparten la máxima nota).

En primer lugar, con la aplicación MAX, buscamos cual es el valor máximo del rango de notas. A continuación, usando un bucle FOR localizamos las celdas con ese valor máximo y cuando las localizamos marcamos en azul el nombre, apellidos y nota del alumno en cuestión.

total-operaciones-matematicas-macros

La segunda macro funciona igual que la primera, pero buscando el mínimo de las notas con el uso de la aplicación MIN. Marcamos de rojo el nombre, apellidos y nota del alumno o alumnos con dicha nota.

total-operaciones-matematicas-macros

La tercera de las macros restablece la hoja de cálculo para limpiarla y poder volver a ejecutar las macros anteriores.

Con esto llegamos al final de la decimonovena lección. Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

Descarga el archivo del ejemplo

« L18. Función GoTo y End para macros.

L20. Funciones ScrollRow y ScrollColumn para macros. »

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto