Cita de: Pedro_madrid en 30 Mayo 2008, 21:28 PMNo tendrías por que haberlo hecho en una función, también se puede hacer en un private sub y funcionaría igual. Hay muchas formas de hacer la misma cosa.
Por lo que veo del código... lo que yo tenia que haber hecho seria una Función, esque yo lo habria metido en Private Sub... aun me queda por aprender mucho...
Cita de: Pedro_madrid en 30 Mayo 2008, 21:28 PMYa te lo puse en mi mensaje, eso del MsgBox es sólo un ejemplo, pero como ya te puse en el mensaje que te escribí...
Ahora otra duda... con MsgBox... no saldria una ventana? Yo lo que pretendia esque me saliera en un Label que hice previamente... ¿hay alguna forma de hacerlo asi?
Cita de: Spider-Net en 30 Mayo 2008, 20:12 PMOsea, inserta un label y deja el código así para que funcione con decimales y todo salga en un Label:
También podrías poner un Label y en el CommandButton escribir: Label1.Caption=saberminota(Text1.Text)
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Label1.Caption = saberminota(Text1.Text)
End Sub
Function saberminota(numero As Double) As String
If numero >= 0 And numero < 5 Then
saberminota = "Suspenso"
ElseIf numero >= 5 And numero < 6 Then
saberminota = "Suficiente"
ElseIf numero >= 6 And numero < 7 Then
saberminota = "Bien"
ElseIf numero >= 7 And numero < 9 Then
saberminota = "Notable"
ElseIf numero >= 9 And numero <= 10 Then
saberminota = "Sobresaliente"
Else
MsgBox "Ha introducido un valor incorrecto", vbInformation, "Error en la nota"
End If
End Function
Como ves lo único que he cambiado es el tipo del dato que se le envía Function saberminota(numero As Double) As String.
Antes era Integer(valor entero) y ahora es Double(valor decimal). Y a parte, lo único que cambié fueron los rangos desde que número a qué número se le asigna cada nota, por ejemplo:
Desde numero >= 6 hasta numero <= 8. Simplemente le especifico desde que número a que número tiene que indicar cierta calificación.
NOTA: En Visual Basic para poner números decimales no uses el punto, ej.: 7.2
Usa la coma: 7,2
Se puede hacer un Replace para usar el punto, pero es innecesario, usando la coma sale bien.
Cita de: Pedro_madrid en 30 Mayo 2008, 21:28 PMSelect Case es otro tipo de estructura selectiva, es una especie de if anidado (no compilado, como dijiste antes).
PD: ¿Para que sirve eso del Select Case? Me parece que leí algo pero no me enteré de como hacerlo...
Con un Select Case sería algo así:
Código (vb) [Seleccionar]
Private Sub Command1_Click()
MsgBox saberminota(Text1.Text)
End Sub
Function saberminota(numero As Double) As String
Select Case (Text1.Text)
Case 1, 2, 3, 4:
saberminota = "suspenso"
Case 5:
saberminota = "suficiente"
Case 6:
saberminota = "bien"
Case 7, 8:
saberminota = "notable"
Case 9, 10:
saberminota = "sobresaliente"
Case Else:
MsgBox "Ha introducido un número incorrecto", vbindormation
End Select
End Function
Pero de esta forma no puedes coger valores decimales, el Select Case sólo toma valores enteros.
[/quote]