Macro de número a texto para calificaciones

Soy profesor y tengo la necesidad de que los promedios de mis alumnos que escribo en una hoja de excel sean convertidos a texto de la siguiente manera: 5.0 convertir a CINCO PUNTO CERO, 6.8 a SEIS PUNTO OCHO, los números son de 5.0 a 10.0 con sun respectivos decimales, separados por la palabra punto, como coloque en los dos ejemplos.

2 Respuestas

Respuesta
1
Yo creo que se está haciendo problemas con la famosa macro.
Lo que debería hacer en este caso es usar la misma macro con unas pequeñas modificacionespara usarla como una función definida por el usuario. En este caso se llama "NumPuntoNum", para que la use como cualquier función normal de Excel, y se debe grabar en un módulo como cualquier macro.
Este es el código:
Function NumPuntoNum(valor)
Dim INI As Integer
Dim letra As String
Dim letra1 As String
FIN = Right(valor, 1)
INI = Left(valor, 2)
If INI = 1 Then
letra = "UNO"
End If
If INI = 2 Then
letra = "DOS"
End If
If INI = 3 Then
letra = "TRES"
End If
If INI = 4 Then
letra = "CUATRO"
End If
If INI = 5 Then
letra = "CINCO"
End If
If INI = 6 Then
letra = "SEIS"
End If
If INI = 7 Then
letra = "SIETE"
End If
If INI = 8 Then
letra = "OCHO"
End If
If INI = 9 Then
letra = "NUEVE"
End If
If INI = 0 Then
letra = "CERO"
End If
If INI = 10 Then
letra = "DIEZ"
End If
If FIN = 1 Then
letra1 = "UNO"
End If
If FIN = 2 Then
letra1 = "DOS"
End If
If FIN = 3 Then
letra1 = "TRES"
End If
If FIN = 4 Then
letra1 = "CUATRO"
End If
If FIN = 5 Then
letra1 = "CINCO"
End If
If FIN = 6 Then
letra1 = "SEIS"
End If
If FIN = 7 Then
letra1 = "SIETE"
End If
If FIN = 8 Then
letra1 = "OCHO"
End If
If FIN = 9 Then
letra1 = "NUEVE"
End If
If FIN = 0 Then
letra1 = "CERO"
End If
NumPuntoNum = letra & " PUNTO " & letra1
End Function
Hola juan:
Muchísimas gracias, funciona a la perfección. Te reitero mi agradecimiento. Pero disculpa otra pregunta y si deseo que esta función se quede fija cada que abra excel. ¿Se puede?
"Un maestro oriental que vio cómo un alacrán se estaba ahogando, decidió sacarlo del agua, pero cuando lo hizo, el alacrán lo picó.
Por la reacción al dolor, el maestro lo soltó, y el animal cayó al agua y de nuevo estaba ahogándose. El maestro intentó sacarlo otra vez, y otra vez el alacrán lo picó.
Alguien que había observado todo, se acercó al maestro y le dijo: "Perdone, ¡pero usted es terco! ¿No entiende que cada vez que intente sacarlo del agua lo picará?".
El maestro respondió: " La naturaleza del alacrán es picar, y eso no va a cambiar la mía, que es ayudar". Y entonces, ayudándose de una hoja, el maestro sacó al animalito del agua y le salvó la vida" JUAN NUNCA CAMBIES TU NATURALEZA, RECUERDA ALGUNOS PERSIGUEN LA FELICIDAD, OTROS LA CREAN.
profr. Marcos calleja guerrero
[email protected]
Respuesta
1
Vamos a suponer que tu tienes tus calificaciones en la columna A desde A1 en adelante y queremos poner las calificaciones en Texto en la columna B desde la B1 en adelante la macro quedaría así:
Sub NumALetra()
Dim valor As String
Dim INI As Integer
Dim letra As String
Dim letra1 As String
Range("B1").Select
Do While ActiveCell.Offset(0, -1).Value <> ""
valor = ActiveCell.Offset(0, -1).Text
FIN = Right(valor, 1)
INI = Left(valor, 2)
If INI = 1 Then
letra = "UNO"
End If
If INI = 2 Then
letra = "DOS"
End If
If INI = 3 Then
letra = "TRES"
End If
If INI = 4 Then
letra = "CUATRO"
End If
If INI = 5 Then
letra = "CINCO"
End If
If INI = 6 Then
letra = "SEIS"
End If
If INI = 7 Then
letra = "SIETE"
End If
If INI = 8 Then
letra = "OCHO"
End If
If INI = 9 Then
letra = "NUEVE"
End If
If INI = 0 Then
letra = "CERO"
End If
If INI = 10 Then
letra = "DIEZ"
End If
If FIN = 1 Then
letra1 = "UNO"
End If
If FIN = 2 Then
letra1 = "DOS"
End If
If FIN = 3 Then
letra1 = "TRES"
End If
If FIN = 4 Then
letra1 = "CUATRO"
End If
If FIN = 5 Then
letra1 = "CINCO"
End If
If FIN = 6 Then
letra1 = "SEIS"
End If
If FIN = 7 Then
letra1 = "SIETE"
End If
If FIN = 8 Then
letra1 = "OCHO"
End If
If FIN = 9 Then
letra1 = "NUEVE"
End If
If FIN = 0 Then
letra1 = "CERO"
End If
ActiveCell.Value = letra & " PUNTO " & letra1
ActiveCell.Offset(1, 0).Select
Loop
End Sub
La macro recorrerá toda la fila A hasta que encuentre una vacía y irá poniendo en la celda contigua la calificación en el formato que deseas.
Si necesitas alguna aclaración me lo dices, si te ha servido puntúa y finaliza la consulta. Gracias.
>Un saludo
>Julio
Julio muchas gracias por tu aportación, es muy interesante, aunque el texto no lo quiero precisamente en la columna "B" ni los números en la columna "A"; sin embargo supongo que esto lo puedo modificar en el módulo. Ojalá lo pueda hacer, en caso de que no espero me permitas solicitarte apoyo. Te reitero mi agradecimiento.
profr. Marcos calleja guerrero

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas