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.

  1. Si el promedio ingresado es 5 la calificación será «C».
  2. Si el promedio ingresado es 10 la calificación será «B».
  3. Si el promedio ingresado es 15 la calificación será «A».
  4. 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.

  1. Si el rango va de 0 a 5 entonces calificación será «C».
  2. Si el rango va de 6 a 10 entonces calificación será «B».
  3. Si el rango va de 11 a 15 entonces calificación será «A».
  4. 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:

  1. Si ventas es <1500 entonces comisión será el 3%.
  2. Si ventas es <4500 entonces comisión será el 4%.
  3. Si ventas es <6000 entonces comisión será el 6%.
  4. 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:

  1. Si el Promedio esta dentro de estos números 1,2,3,4,5 entonces calificación será igual a «C».
  2. Si el promedio esta dentro de estos números 10,11 entonces la calificación será igual a «B».
  3. Si el promedio es igual a 15 entonces la calificación será «A».
  4. 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.

Recuerda que solo basta poner los dos puntos después de la condición, de esta manera se ejecutará el código en una sola línea.

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:

A1 a A7

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

Related Articles

Responses

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