Como hacer que funcione este código

Función convertir números a letras calificaciones aquí les dejo el link de la descripción:

https://www.youtube.com/watch?v=rI2ruwAwqQo 

y esta es  la funcion  que copie:

Function Calificaciones(numero As Double) As String

Dim Numdecimales As Double

Dim ParteEntera, Partedecimal

Dim resultado AS String

Dim resultado2 AS String

'Churoche denle un like y apoyen si les gustó----------------------------------

'Creamos las tablas de conversión de números a letras

ParteEntera = Array(“Cero”, “Uno”, “Dos”, “Tres”, “Cuatro”, “Cinco”, “Seis”, “Siete”, “Ocho”, “Nueve”, “Diez”, “Once”, “Doce”, “Trece”, “Catorce”, “Quince”, “Dieciséis”, “Diecisiete”, “Dieciocho”, “Diecinueve”, “Veinte”, “Veintiuno”, “Veintidós”, “Veintitrés”, “Veinticuatro”, “Veinticinco”, “Veintiséis”, “Veintisiete”, “Veintiocho”, “Veintinueve”)

Partedecimal = Array(“”, “Diez”, “Veinte”, “Treinta”, “Cuarenta”, “Cincuenta”, “Sesenta”, “Setenta”, “Ochenta”, “Noventa”)

'Extraemos la parte entera del número y la llamamos entero

   Entero = Fix(numero)

'Redondeamos y extraemos el número de decimales de nuestro número a 2 lo llamamos Numdecimales

   Numdecimales = Application.WorksheetFunction.Round((numero - Fix(numero)) * 100, 2)

'Ahora vamos  trabajar con el entero dependiendo del valor que tenga

Select Case Entero

'Si el entero tiene un valor de cero pues su texto correspondiente es ese mismo

   Case 0

     Resultado = “Cero”

'Si el entero tiene un valor de entre uno y diez que busque su texto en la tabla ParteEntera

   Case 1 To 10

    Resultado = ParteEntera(Entero)

End Select

'Ahora trabajamos con los decimales

   Select Case Numdecimales

'Si no hay decimales el texto que devolverá será cero cero

 Case 0

    resultado2 = “cero cero”

'Si el decimal va desde 01 a 09 pues se encadena la palabra cero con el texto correspondiente buscando en la tabla

'ParteEntera y se vuelve todo en minúsculas

 Case 1 To 9

    resultado2 = LCase(“Cero” & ParteEntera(Numdecimales))

'Si los decimales están entre 10 y 29 se busca su texto en la tabla ParteEntera Y se vuelve a minúscula todo el texto

  Case 10 To 29

     Resultado2 = LCase(ParteEntera(Numdecimales))

'Por último si los decimales están entre 30 y 99 hay encadenar las decenas y unidades del mismo

  Case 30 To 99

     resultado2  = LCase(Partedecimal(Fix(Numdecimales / 10)) & IIf((Numdecimales Mod 10) <> 0, “ y ” & ParteEntera(Numdecimales Mod 10), “”))

End Select

'Aquí se une la parte entera (resultado) con la palabra “coma” y con la parte decimal (resultado2)

End Function

1 Respuesta

Respuesta
1

El vídeo esta bien explicado cual es tu dificultad.

Saludos!1

Function Calificaciones(numero As Double) As String
Dim Numdecimales As Double
Dim ParteEntera, Partedecimal
Dim resultado As String
Dim resultado2 As String
'Churoche denle un like y apoyen si les gustó----------------------------------
'Creamos las tablas de conversión de números a letras
ParteEntera = Array("Cero", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veinticuatro", "Veinticinco", "Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve")
Partedecimal = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa")
'Extraemos la parte entera del número y la llamamos entero
Entero = Fix(numero)
'Redondeamos y extraemos el número de decimales de nuestro número a 2 lo llamamos Numdecimales
Numdecimales = Application.WorksheetFunction.Round((numero - Fix(numero)) * 100, 2)
'Ahora vamos  trabajar con el entero dependiendo del valor que tenga
Select Case Entero
'Si el entero tiene un valor de cero pues su texto correspondiente es ese mismo
Case 0
resultado = "cero"
'Si el entero tiene un valor de entre uno y diez que busque su texto en la tabla ParteEntera
Case 1 To 10
resultado = ParteEntera(Entero)
End Select
'Ahora trabajamos con los decimales
Select Case Numdecimales
'Si no hay decimales el texto que devolverá será cero cero
Case 0
resultado2 = "cero cero"
'Si el decimal va desde 01 a 09 pues se encadena la palabra cero con el texto correspondiente buscando en la tabla
'ParteEntera y se vuelve todo en minúsculas
 Case 1 To 9
resultado2 = LCase("cero" & ParteEntera(Numdecimales))
'Si los decimales están entre 10 y 29 se busca su texto en la tabla ParteEntera Y se vuelve a minúscula todo el texto
  Case 10 To 29
resultado2 = LCase(ParteEntera(Numdecimales))
'Por último si los decimales están entre 30 y 99 hay encadenar las decenas y unidades del mismo
  Case 30 To 99
resultado2 = LCase(Partedecimal(Fix(Numdecimales / 10)) & IIf((Numdecimales Mod 10) <> 0, "y" & ParteEntera(Numdecimales Mod 10), ""))
End Select
Calificaciones = resultado & " coma " & resultado2
'Aquí se une la parte entera (resultado) con la palabra “coma” y con la parte decimal (resultado2)
End Function

Me comentas saludos!

¡GRACIAS¡ 

yo copie el código pero no me funcionaba

ya comprobé lo que me envió y si funciona tal vez copie mal la primera vez.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas