Visual Basic - Sentencia CASE

Life is soft - evento anual de software empresarial
   
Vista:

Sentencia CASE

Publicado por Angel (4 intervenciones) el 25/10/2010 17:05:35
Como se haria para que funcione esto?

select case rango
Case rango < 0
MsgBox("Es menor que cero")
Case rango >= 0 And rango< 100
MsgBox("De 0 a 100")
Case rango >= 100 And rango<= 1000
MsgBox("De 100 a 1000")
Case rango> 1000
MsgBox("Mayor de 1000")

Con solo una me funciona, pero con el AND no.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sentencia CASE

Publicado por FELIPE (41 intervenciones) el 25/10/2010 19:18:21
Hola,
si rango es tu variable, no se menciona dentro de cada CASE, se reemplaza por "Is" para una comparacion.

- Se cumple un caso porque no se cumpliero los casos anteriores

Private Sub Command1_Click()
dim rango as integer
rango = Val(Text1.Text) %0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por FELIPE (41 intervenciones) el 25/10/2010 19:19:29
Hola,
si rango es tu variable, no se menciona dentro de cada CASE, se reemplaza por "Is" para una comparacion.

- Se cumple un caso porque no se cumpliero los casos anteriores

Private Sub Command1_Click()
dim rango as integer
rango = Val(Text1.Text)
Select Case rango
Case Is < 0
MsgBox ("Es menor que cero")
Case Is <= 100
MsgBox ("De 0 a 100")
Case Is <= 1000 ' no es necesario AND, porque para el caso anterior rango>100
MsgBox ("De 100 a 1000")
Case Is > 1000
MsgBox ("Mayor de 1000")
End Select
End Sub

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por Antoni Masana (79 intervenciones) el 26/10/2010 07:20:24
Otra forma de escribir lo mismo

Select Case Rango
Case Is < 0: MsgBox ("Es menor que cero")
Case 0 To 100: MsgBox ("De 0 a 100")
Case 100 To 1000: MsgBox ("De 100 a 1000")
Case Is > 1000: MsgBox ("Mayor de 1000")
End Select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por Antoni Masana (79 intervenciones) el 26/10/2010 08:52:04
Otra forma de escribir lo mismo

Select Case Rango
Case Is < 0: MsgBox ("Es menor que cero")
Case 0 To 100: MsgBox ("De 0 a 100")
Case 100 To 1000: MsgBox ("De 100 a 1000")
Case Is > 1000: MsgBox ("Mayor de 1000")
End Select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por Angel (4 intervenciones) el 26/10/2010 16:38:37
Gracias. Esta no me vale porque el 100 lo meteria en el caso de 0 a 100 y yo quiero que lo meta en el siguiente.
La solucion seria poner 0 to 99, pero y si son double en vez de integer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por Angel (4 intervenciones) el 26/10/2010 16:42:51
Gracias. Asi si que funciona como quiero.

Sabrias si se pueden hacer comparaciones con el or en un case? o habria que utilizar la sentencia if.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por FELIPE (41 intervenciones) el 26/10/2010 17:01:56
Para que se cumpla 2 o mas condiciones en un case solo se usa la coma

case Is=valor1, Is =valor2
'sentencias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sentencia CASE

Publicado por Angel (4 intervenciones) el 26/10/2010 17:49:02
Gracias. Esto equivaldria al OR. Perfecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar