Curso de VBA Macros Excel: Ejercicios con la instrucción SELECT CASE
🔴 A continuación veremos una serie de ejercicios utilizando el Condicional y también conocido como la Instrucción Select Case de VBA para la creación de Macros para Excel.
✅ Ejercicios con la Instrucción Select Case
La Instrucción Select Case también conocido como condicional es prácticamente lo mismo que el Condicional IF. Utilizamos el Condicional Select Case de una forma personal a la hora de programar. Recuerden que Select Case puede trabajar con muchísimas Condiciones, puede trabajar también con el Operador AND, con el Operador OR y el Operador ELSE. Lo que cambia solo es la arquitectura de su forma.
✅ Estructura de la Instrucción Select Case
Ejercicio 1: Select Case
✅ Ingresaremos en un InputBox un número y de acuerdo a ese número, nosotros mostraremos una calificación utilizando el Select Case.
- Si el promedio ingresado es 5 la calificación será «C».
- Si el promedio ingresado es 10 la calificación será «B».
- Si el promedio ingresado es 15 la calificación será «A».
- En caso contrario, si no se cumple ninguna de las condiciones mencionadas la calificación será «AA»
Sub Ejercicio_01()
Promedio = InputBox(“Introduzca un número”)
Select Case Promedio
Case 5
calificación = “C”
Case 10
calificación = “B”
Case 15
calificación = “A”
Case Else calificación = “AA”
End Select
MsgBox calificación
End Sub
Si ejecutamos nos saldrá un cuadro de texto en el que debemos indicar un valor:
SI PONEMOS UN NÚMERO QUE NO ESTÁ ESTIPULADO EN LAS CODICIONES SIEMPRE DARÁ «AA» GRACIAS A QUE ESTA EL ELSE COMO ÚLTIMA CONDICIÓN
Ejercicio 2: Select Case To
✅ En este segundo ejercicio vamos a utilizar rangos con números, pero esta vez agregaremos la palabra To que nos servirá para determinar el rango de un número a otro.
- Si el rango va de 0 a 5 entonces calificación será «C».
- Si el rango va de 6 a 10 entonces calificación será «B».
- Si el rango va de 11 a 15 entonces calificación será «A».
- Si no cumple ninguna de las condiciones mencionadas anteriorer, la calificación será «AA».
El «Case Else» es la última condición que se llega a cumplir si o si , siempre y cuando ninguna de las anteriores cumplió.
El «To» nos va ayudar a definir dos rangos como por ejemplo: Case 0 To 5 en español sería de 0 a 5.
Sub Ejercicio_02()
'En Perú la nota va de 0 a 20
Promedio = InputBox("Introduzca un número")
Select Case Promedio
Case 0 To 5
calificacion = “C”
Case 6 To 10
calificacion = “B”
Case 11 To 15
calificacion = “A”
Case Else
calificacion = “AA”
End Select
MsgBox "La calificación es: " & calificacion
End Sub
Si ejecutamos nos saldrá un cuadro de texto en el que debemos indicar un valor:
Ejercicio 3: Select Case Is
✅En esta macro 3 veremos el clásico ejercicio que también se puede realizar con las condicionales If. Pero esta vez utilizaremos el Select Case y dependerá de las siguientes condiciones:
- Si ventas es <1500 entonces comisión será el 3%.
- Si ventas es <4500 entonces comisión será el 4%.
- Si ventas es <6000 entonces comisión será el 6%.
- En caso contrario si ninguna de las condiciones se cumple, comisión será el 10%.
Cuando ponemos operadores como (Mayor, Menor, Igual, Mayor que, Menor que, diferentes, etc) tendremos que agregar la palabra «is» en cada case como este ejemplo:
Case Is <= 1500 Pero si no lo agregas el mismo editor te lo va agregar, inteta no agregarlo y tu mismo te darás cuenta mas abajo te muestro la macro completa.
Sub Ejercicio_03()
Promedio = InputBox("Introducir un número")
Select Case Promedio
Case Is <= 1500
MsgBox "Comisión 3%"
Case Is <= 4500
MsgBox "Comisión 4%"
Case Is <= 6000
MsgBox "Comisión 6%"
Case Else
MsgBox "Comisión 10%"
End Select
End Sub
Si ejecutamos nos saldrá un cuadro de texto en el que debemos indicar un valor:
Ejercicio 4: Select Case con intervalos
✅ Aquí veremos un ejemplo muy parecido pero esta vez vamos a agregar la coma «,» para poner mas de un número como se muestra en el ejemplo:
- Si el Promedio esta dentro de estos números 1,2,3,4,5 entonces calificación será igual a «C».
- Si el promedio esta dentro de estos números 10,11 entonces la calificación será igual a «B».
- Si el promedio es igual a 15 entonces la calificación será «A».
- Si no se cumple ninguna de las condiciones mencionadas entonces calificación será igual a «AA».
Recuerda que solo basta agregar una coma para considerar mas posibilidades en el Case: Case 1,2,3,4,5
Si por ejemplo, aumentamos el número de intervalos, tendremos una mejor segmentación de resultado.
Case 1,2,3,4,5
calificación = “C”
👉 Si al ejecutarlo ponemos 4 este nos dirá que el Promedio es C ya que si hay ese intervalo.
OJO Si no ponemos LOS INTERVALOS automáticamente pondrá el Promedio AA si este no lo encuentra.
Ejercicio 5: Select Case poner Código en una sola Línea (:)
✅ PARA EJECUTAR CÓDIGO EN UNA SOLA LÍNEA PONEMOS DOS PUNTOS (:)
Esto nos permite tener un código más ordenado y se ejecuta de la misma manera que el Ejercicio 1.
Ejercicio 6: Select Case IS con operador AND
✅ Al igual que la condicional IF que podemos agregar el operador AND y el operador OR, aquí en select Case también podemos agregar los operadores and y or. Recuerda, que si ponemos el operador AND y luego para que el resultado se pueda cumplir, todas las condiciones que pondremos después del AND deberán cumplirse (Deberán ser verdaderas), si una no se cumple, entonces pasará al siguiente Case.
Si ejecutamos tendremos impreso “…………………………………………….”
Ejercicio 7: Select Case con Bucle For Each y Rango
✅Vamos a declarar una Variable de tipo Objeto, por ejemplo: Mi_Rango, esta Variable va capturar a este rango:
Para que esta variable pueda toma todo el rango necesitamos declararla como una usando DIM y As Range:
Cuando deseamos asignar valores a una Variable de tipo Objeto tenemos que utilizar Set y asignamos el rango por ejemplo desde A1 hasta A7.
Podemos ver la siguiente estructura:
Ahora agregaremos el Bucle For Each, agregamos MsgBox:
👉 Si usamos For Each no es necesario poner la fila, ya que internamente ya lo interpreta ✅
Si ejecutamos veremos que MsgBox valor va recorrer cada Celda desde A1 hasta A7.
Ahora vamos a escribir Select Case con sus condiciones respectivas y le asignaremos un Interior.ColorIndex con un valor numérico y ejecutamos, veremos que los cuadros cambian de color según el valor numérico asignado:
👉 También puedes ver estos artículos relacionados: 👀
⭐ Instrucciones Whit end Whith
⭐ Función y Método InputBox
⭐ Cuadros de Mensaje (Botón Si, No, Cancelar, Anular, Reintentar, ) con íconos
Responses