domingo, 17 de enero de 2016

Select Case en VBA

Aquí aprenderemos a utilizar la instrucción Select Case, para ejecutar código basado en múltiples condiciones.
Esta instrucción, nos permite utilizar tantas condiciones como sea necesario, y conviene escribir el código, para situaciones en las que hay muchas opciones.

Su sintaxis es la siguiente

Select Case expresiónPrueba 
[Case listaExpresión-n
[instrucciones-n]] 
[Case Else
[instruccionesElse]]
End Select



expresiónPrueba
Cualquier expresión numérico o expresión de cadena

listaExpresión-n
Lista delimitada de uno o más valores. Si vamos a expresar más de un valor, utilizaremos la palabra clave To. Ejemplo: 1 To 5

instrucciones-n
Una o más instrucciones a ejecutar, siempre y cuando coincida con cualquier parte de listaExpresión-n

instruccionesElse
Una o más instrucciones ejectuadas, en el caso que no hayan coincidencias con listaExpresión-n


Vamos a crear dos ejemplos prácticos.
En el entorno VBA, inserta un nuevo módulo, pegando los bloques de código que tienes a continuación:

Ejemplo 1 | Evaluación mediante un solo valor

Sub ColorSelectCase()
Dim nValor As Byte

nValor = 3

    Select Case nValor
        Case 1
            MsgBox "Has elegido el color Rojo"
        Case 2
            MsgBox "Has elegido el color Azul"
        Case 3
            MsgBox "Has elegido el color Amarillo"
        
        Case Else
            MsgBox "Debes elegir uno de tres colores", vbCritical
    End Select

End Sub

En este ejemplo, hemos declarado la variable nValor de tipo Byte, a la cual la hemos asignado el valor 3, por lo que cuando des clic en ejecutar, te aparecerá la caja de mensaje, que diga "has elegido el color Amarillo". Observa que tenemos tres opciones en Case; que es donde tenemos establecidos los mensajes con cada color. Si eliges un color fuera de ese rango, pues, no habrá coincidencia con el valor evaluado y te saldrá el mensaje "Debes elegir uno de tres colores".
Puedes ir asignando un número diferente y verás como cambia el mensaje, según el valor elegido.


Ok, veamos el siguiente ejemplo:

Ejemplo 2 | Evaluación con más de un valor

Sub NotaSelectCase()
Dim xNota As Byte

xNota = 7

    Select Case xNota
        Case 0 To 4
            MsgBox "Reprobado"
        Case 5 To 6
            MsgBox "Bueno"
        Case 7 To 8
            MsgBox "Muy Bueno"
        Case 9 To 10
            MsgBox "Excelente"
        
        Case Else
            MsgBox "Escriba una calificación válida!", vbCritical
    End Select

End Sub

Aquí ya estamos utilizando más de un valor por Case, en donde evaluaremos las notas de un estudiante.
Que si el estudiante tiene una nota entre 0 a 4, pues estará reprobado; si tiene de 5 a 6, habrá aprobado con Bueno... y así sucesivamente.
De esta forma, establecemos un rango por cada opción, determinando el estatus en que se encuentra una nota.
Ahora bien, si a la variable xNota, le asignas un valor superior a 10, te saldrá el mensaje "Escriba una nota válida"

Espero que este material te sea de utilidad, y si es así, compártelo con tus amigos!

Nos vemos en la próxima entrega.

Saludos!


5 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Otto buen día, soy fanático de excel, me encanta usarlo, y tus vídeos me han ayudado mucho, pero este proyecto que estas iniciando es fabuloso, por que nos brindas la oportunidad de tenerlo a la mano y hasta armar nuestro propio archivo. Te deseo lo mejor... ¡un fuerte abrazo!
    Y sí, ten por seguro que estaremos visitando tu pagina muy seguido.

    ResponderEliminar
    Respuestas
    1. Muchas gracias mi estimado amigo. Gracias por tu apoyo. Saludos cordiales! :)

      Eliminar
  3. Gracias Otto por la explicacion, muy buena.

    ResponderEliminar