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...
No 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.
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?
Ya 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í...
También podrías poner un Label y en el CommandButton escribir: Label1.Caption=saberminota(Text1.Text)
Osea, inserta un label y deja el código así para que funcione con decimales y todo salga en un Label:
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.
PD: ¿Para que sirve eso del Select Case? Me parece que leí algo pero no me enteré de como hacerlo...
Select Case es otro tipo de estructura selectiva, es una especie de if
anidado (no compilado, como dijiste antes).
Con un Select Case sería algo así:
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]