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.














Cualquier duda por favor comente.
ResponderEliminareste es un muy buen material mas detalles
ResponderEliminar