Visual Basic - CASE (URGENTE) sigue sin funcionar

Life is soft - evento anual de software empresarial
 
Vista:

CASE (URGENTE) sigue sin funcionar

Publicado por kontxi (47 intervenciones) el 30/03/2001 15:23:55
Creo q antes no lo he explicado bien, mi problema es el siguiente. Tengo q hacer segun unos kg haya unas tarifas y me gustaría (si se puede), hacerlo con un CASE.Con el if seria así.
if kilos >=1 and kilos<=10 then
tarifa=1
elseif kilos>10 and kilos<=20 then
tarifa=2
elseif kilos>20 and kilos<=30 then
tarifa=3
end if
Así no se queda ningun kilo sin tarifa.
con el case de momento lo he hecho así:
select case kilos
case 1 to 10
tarifa=1
case 10.1 to 20
tarifa=2
case 20.1 to 30
tarifa=3
end case

pero el problema es que así si kilos=20.01, no entraría en ningún intervalo.

MUCHAS GRACIAS POR ANTICIPADO.SALUDOS
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:CASE (URGENTE) sigue sin funcionar

Publicado por afogutu (321 intervenciones) el 30/03/2001 16:01:09
Usalo de la siguiente manera

Select Case Kg
case 1 To 10
'Codigo
case 11 to 20
'Codigo
case 21 to 'Lo que vos quieras

case else
'Por si recibís un peso negativo o fuera del rango
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:CASE (URGENTE) sigue sin funcionar

Publicado por maria (42 intervenciones) el 30/03/2001 21:28:41
Yo creo que la solucion a tu problema es algo de este tipo:

Public i%, a as Double, kilos as Double
i:a=0
For i=1 To 30 Step 10
a=IIf(kilos>=i,i,a)
Next i
Select Case a
Case 1
codigo
Case 10
codigo
Case 20
codigo
Case 30
codigo
Case Else
codigo opcional
End Select

No lo he probado al 100% pero creo que asi funciona. Espero haberte ayudado.

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:CASE (URGENTE) sigue sin funcionar

Publicado por maria (42 intervenciones) el 30/03/2001 21:44:56
Me he dado cuenta de que la estructura de que te he dicho antes es valida pero necesitara que le hagas algun pequeño ajuste. Si no aciertas con ello indicamelo y tratare de mandarte el codigo completo.
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:CASE (URGENTE) sigue sin funcionar

Publicado por Adán (39 intervenciones) el 31/03/2001 05:12:22
Creo que te me estás perdiendo. Yo no recomendaría usar un case, pero si lo quieres así sería:

Dim kilos As Double

Select Case kilos
Case <= 0
'mensaje de error o lo que quieras
Case <= 10
tarifa = 1
Case <= 20
tarifa = 2
Case <= 30
tarifa = 3
'etc, etc, etc
End Select

Yo sé que se parece mucho a un mensaje anterior, pero funciona, siempre y cuando declares kilos como Double, Single o Variant (con punto decimal).
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:CASE (URGENTE) sigue sin funcionar

Publicado por Francisco Rossi (Stone Cold) (76 intervenciones) el 01/04/2001 06:20:18
Espero que esto te resulte, es algo asi

Dim KILOS

KILOS = 211.5

Select Case CInt(KILOS)

Case 1 To 10

MsgBox "1 A 10"

Case 11 To 20

MsgBox "11 A 20"

' Y ASI SUCESIVAMENTE

Case Is > 200

MsgBox "MAYOR QUE 200"

End Select

JAJA, ESTO ES MUY FACIL, Y NO SE COMO LOS OTROS NO PODIAN HACERLO
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:CASE (URGENTE) sigue sin funcionar

Publicado por Daniel (2 intervenciones) el 02/04/2001 05:39:57
No te rias tanto, piedra fría.. que no le has solucionado el problema...

El plantea lo siguiente:
if kilos >=1 and kilos<=10 then
tarifa=1
elseif kilos>10 and kilos<=20 then
tarifa=2
elseif kilos>20 and kilos<=30 then
tarifa=3
end if
Así no se queda ningun kilo sin tarifa.
con el case de momento lo he hecho así:
select case kilos
case 1 to 10
tarifa=1
case 10.1 to 20
tarifa=2
case 20.1 to 30
tarifa=3
end case
'---------------------------------
SI TRANSFORMAS LA VARIABLE A ENTERA,
Supone 10,40 queda 10
y en el modelo que el propone tendria que entrar en el case de la tarifa para 11
Piensa un rato más en una de esas te sale....
Tu que tienes todas las ayudas de VB y sabes inglés...
Saludos


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