SITIO DEDICADO  SOLO A EXCEL 2007 Y EXCEL 2003, CON TUTORIALES Y EJERCICIOS  RESUELTOS DE  TODOS LOS TEMAS

NIVELES, BASICO, MEDIO Y AVANZADO

Estructura de desición Select-Case

 

INTRODUCCION:

La estructura de decisión If-Then-Else puede anidarse y como este anidamiento se puede repetir tantas veces como el problema lo exija, a veces el código suele hacerse confuso y frecuentemente da lugar a errores, en estos casos se puede recurrir a la estructura de decisión Select-Case.

En primer lugar veremos que funciona igual que If-Then-Else, para lo que utilizaremos el mismo ejemplo que If-Then-Else en la parte en que comparábamos 2 números ubicados en las celdas D1 y E1 y el programa debía responder si estos son iguales, mayores o menores, ubicando la respuesta en la celda D4

El código es

 

código

escencialmente este código evalúa el valor actual de la celda "D1" y se escribe un código diferente de acuerdo al caso de que este valor sea = , > o < que el valor actual de la celda "E1"

CODIGO PARA COPIAR Y PEGAR

Sub SelectCase()
A1 = Range("E1").Value
Select Case Range("D1").Value
Case Is = A1
ActiveSheet.Range("D4").Value = "Los Valores de D1 y E1 son iguales"
Case Is > A1
ActiveSheet.Range("D4").Value = "D1 es mayor que E1"
Case Is < A1
ActiveSheet.Range("D4").Value = "E1 es mayor que D1"
End Select
End Sub


La utilidad esencial de esta estructura se manifiesta cuando los casos que se evalúan son mas numerosos como veremos en el siguiente ejemplo.

Introducir en una celda la nota de un alumno y en otra una leyenda que diga si esta aplazado, aprobado y en caso de estar aprobado si su nota fue buena, muy buena, distinguida o sobresaliente, teniendo en cuenta que:

Aplazado= 1,2,3

Aprobado= 4,5

Bueno= 6,7

Muy bueno= 8

Distinguido= 9

Sobresaliente= 10

se puede responder a estas preguntas aplicando este código

 

 

Select case

CODIGO PARA COPIAR Y PEGAR

Sub SelectCase()
a = Range("A2").Value
Select Case a
Case 1 To 3
ActiveSheet.Range("B2").Value = "APLAZADO"
Range("E1").Select
Case 4 To 5
ActiveSheet.Range("B2").Value = "APROBADO"
Range("E1").Select
Case 6 To 7
ActiveSheet.Range("B2").Value = "BUENO"
Range("E1").Select
Case 8
ActiveSheet.Range("B2").Value = "MUY BUENO"
Range("E1").Select
Case 9
ActiveSheet.Range("B2").Value = "DISTINGUIDO"
Range("E1").Select
Case 10
ActiveSheet.Range("B2").Value = "SOBRESALIENTE"
Range("E1").Select
End Select
End Sub

El resultado final queda como se ve en la figura, en este caso hemos agregado un botón para disparar la macro, el cual esta señalado por la flecha roja

 

resultado final

 

 

 

Copyright © 2009. Diseño CésarDesign
Free Web Hosting

http://www.1null_app_id.com/