Excel no trae por defecto una función que convierta de números
a letras por lo tanto te mostrare los pasos para crear tu
propia función para convertir números a letras, esto
puede serte de mucha utilidad si usas Excel para imprimir facturas,
certificados de estudios o reportes en los que debas ingresar un numero en
letras.
PASOS PARA PONER TU MACRO
1. En excel te diriges a la ventana desarrollador de tu excel
2. clic en Visual Basic
3. Clic derecho en Hoja 1 (o clic derecho en el nombre de la hoja donde deseas que se posociones tu macro. vea la imagen.
Te aparecerá la siguiente ventana donde pegaras tu codigo.
Asi se vería tu macro en codigo Visual Basic.
CODIGO DE LA MACRO
Function cNumero(ByVal num As Long) As String Dim Texto As String Dim cUnidades, cDecenas, cCentenas Dim nUnidades, nDecenas, nCentenas As Byte Dim nMiles As Long Dim nMillones As Long cUnidades = Array("", "Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciseis", "Diecisite", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veitnicuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve") cDecenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien") cCentenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos") nMillones = num \ 1000000 nMiles = (num \ 1000) Mod 1000 nCentenas = (num \ 100) Mod 10 nDecenas = (num \ 10) Mod 10 nUnidades = num Mod 10 'Evaluación de Millones If nMillones = 1 Then Texto = "Un Millón" + IIf(num Mod 1000000 <> 0, " " + cNumero(num Mod 1000000), "") cNumero = Texto Exit Function ElseIf nMillones >= 2 And nMillones <= 999 Then Texto = cNumero(num \ 1000000) + " Millones" + IIf(num Mod 1000000 <> 0, " " + cNumero(num Mod 1000000), "") cNumero = Texto Exit Function 'Evaluación de Miles ElseIf nMiles = 1 Then Texto = "Mil" + IIf(num Mod 1000 <> 0, " " + cNumero(num Mod 1000), "") cNumero = Texto Exit Function ElseIf nMiles >= 2 And nMiles <= 999 Then Texto = cNumero(num \ 1000) + " Mil" + IIf(num Mod 1000 <> 0, " " + cNumero(num Mod 1000), "") cNumero = Texto Exit Function End If 'Evaluación desde 0 a 999 'Casos Especiales If num = 100 Then Texto = cDecenas(10) cNumero = Texto Exit Function ElseIf num = 0 Then Texto = "Cero" cNumero = Texto Exit Function End If If nCentenas <> 0 Then Texto = cCentenas(nCentenas) End If If nDecenas <> 0 Then If nDecenas = 1 Or nDecenas = 2 Then If nCentenas <> 0 Then Texto = Texto + " " End If Texto = Texto + cUnidades(num Mod 100) cNumero = Texto Exit Function Else If nCentenas <> 0 Then Texto = Texto + " " End If Texto = Texto + cDecenas(nDecenas) End If End If If nUnidades <> 0 Then If nDecenas <> 0 Then Texto = Texto + " y " ElseIf nCentenas <> 0 Then Texto = Texto + " " End If Texto = Texto + cUnidades(nUnidades) End If cNumero = Texto End Function
UNA VEZ COPIADO NUESTRO CODIGO PROCEDEMOS A GUARDAR NUETRO LIBRO DE EXCEL HABILITADO PARA MACROS DE LO CONTRARIO LA FUNCIÓN INSERTADA NO FUNCIONARIA.
Para Guardar nuestro libro habilitado para macros presionamos Ctrl + S
Si ya lo teníamos guardado damos clic en No para guardarlo nuevamente ya habilitado para macros.
Seleccionamos la opcion libro de Excel habilitado para macros y damos clic en Guardar.
Ahora podemos hacer uso de nuestra nueva función.