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:Código
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í:
Código
Pero de esta forma no puedes coger valores decimales, el Select Case sólo toma valores enteros.
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
[/quote]