El post que buscas se encuentra eliminado, pero este también te puede interesar

Macro de Excel que convierte una cifra en texto

Aquí dejo una Macro de Excel que sirve para convertir una cifra en texto. Copiar y pegar en el Editor de Visual Basic. Una vez guardada, en Excel capturar la función "=conviertenumletra(celda)" en donde celda es la dirección de la celda con el dato numérico.

'----Desde Aqui Seleccionar
'Macro que permite convertir Numeros a Letras hasta por 999,999,999.99
'Procedimiento para Cargar la Macro
'Seleccionar y Pegar en el Portapapeles Todo Este Codigo(Con Ctrl-C)
'Abrir Libro de Excel Normal
'Elegir Herramientas/Macro/Editor de Visualbasic
'De la Barra de Menús Elegir Insertar Modulo
'Seleccionar el Modulo
'Ctrl+V para pegar todo
'Grabar en Libro de Excel
'y Listo
' Forma de llamada en una celda utilizar lo siguiente
'=conviertenumletra(celda)

Function ConvierteNumLetra(Numero)
Dim Texto
Dim Millones
Dim Miles
Dim Cientos
Dim Decimales
Dim Cadena
Dim CadMillones
Dim CadMiles
Dim CadCientos
Texto = Numero
Texto = FormatNumber(Texto, 2)
Texto = Right(Space(14) & Texto, 14)
Millones = Mid(Texto, 1, 3)
Miles = Mid(Texto, 5, 3)
Cientos = Mid(Texto, 9, 3)
Decimales = Mid(Texto, 13, 2)
CadMillones = ConvierteCifra(Millones)
CadMiles = ConvierteCifra(Miles)
CadCientos = ConvierteCifra(Cientos)
If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "UN" Then
Cadena = CadMillones & " MILLON"
Else
Cadena = CadMillones & " MILLONES"
End If
End If
If Trim(CadMiles) > "" Then
Cadena = Cadena & " " & CadMiles & " MIL"
End If

If Trim(CadCientos) = "UN" Then
Cadena = Cadena & "UN PESO " & Decimales & "/100 M.N."
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " DE PESOS " & Decimales & "/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Decimales & "/100 M.N."
End If
End If
ConvierteNumLetra = Trim(Cadena)
End Function

Function ConvierteCifra(Texto)
Dim Centena
Dim Decena
Dim Unidad
Dim txtCentena
Dim txtDecena
Dim txtUnidad
Centena = Mid(Texto, 1, 1)
Decena = Mid(Texto, 2, 1)
Unidad = Mid(Texto, 3, 1)
Select Case Centena
Case "1"
txtCentena = "CIEN"
If Decena & Unidad <> "00" Then
txtCentena = "CIENTO"
End If
Case "2"
txtCentena = "DOSCIENTOS"
Case "3"
txtCentena = "TRESCIENTOS"
Case "4"
txtCentena = "CUATROCIENTOS"
Case "5"
txtCentena = "QUINIENTOS"
Case "6"
txtCentena = "SEISCIENTOS"
Case "7"
txtCentena = "SETECIENTOS"
Case "8"
txtCentena = "OCHOCIENTOS"
Case "9"
txtCentena = "NOVECIENTOS"
End Select

Select Case Decena
Case "1"
txtDecena = "DIEZ"
Select Case Unidad
Case "1"
txtDecena = "ONCE"
Case "2"
txtDecena = "DOCE"
Case "3"
txtDecena = "TRECE"
Case "4"
txtDecena = "CATORCE"
Case "5"
txtDecena = "QUINCE"
Case "6"
txtDecena = "DIECISEIS"
Case "7"
txtDecena = "DIECISIETE"
Case "8"
txtDecena = "DIECIOCHO"
Case "9"
txtDecena = "DIECINUEVE"
End Select
Case "2"
txtDecena = "VEINTE"
If Unidad <> "0" Then
txtDecena = "VEINTI"
End If
Case "3"
txtDecena = "TREINTA"
If Unidad <> "0" Then
txtDecena = "TREINTA Y "
End If
Case "4"
txtDecena = "CUARENTA"
If Unidad <> "0" Then
txtDecena = "CUARENTA Y "
End If
Case "5"
txtDecena = "CINCUENTA"
If Unidad <> "0" Then
txtDecena = "CINCUENTA Y "
End If
Case "6"
txtDecena = "SESENTA"

If Unidad <> "0" Then
txtDecena = "SESENTA Y "
End If
Case "7"
txtDecena = "SETENTA"
If Unidad <> "0" Then
txtDecena = "SETENTA Y "
End If
Case "8"
txtDecena = "OCHENTA"
If Unidad <> "0" Then
txtDecena = "OCHENTA Y "
End If
Case "9"
txtDecena = "NOVENTA"
If Unidad <> "0" Then
txtDecena = "NOVENTA Y "
End If
End Select

If Decena <> "1" Then
Select Case Unidad
Case "1"
txtUnidad = "UN"
Case "2"
txtUnidad = "DOS"
Case "3"
txtUnidad = "TRES"
Case "4"
txtUnidad = "CUATRO"
Case "5"
txtUnidad = "CINCO"
Case "6"
txtUnidad = "SEIS"
Case "7"
txtUnidad = "SIETE"
Case "8"
txtUnidad = "OCHO"
Case "9"
txtUnidad = "NUEVE"
End Select
End If
ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad
End Function

'----Seleccionar Hasta Aquí

Anuncios

10 comentarios - Macro de Excel que convierte una cifra en texto

@jacqNe
thks !! si me funciono !!
@arquichato
excelente aporte este es el mejor, he probado varios pero tienen errores, repito, este funciona perfecto, solo una cosa como le agrego los parentesis para que me de algo asi: (ciento veinte pesos 00/100).
saludos.
@maribel_m85
Me funcionó muy bien, muchas gracias! Lo único, como quería usar esta función para poder concatenar en una oración, tuve que quitarle algunas cosas. Saludos!!
@FXOOL
Super padre... hace tiempo estaba buscando esa macro. from yucatan jejjeje chido....
@Rocker10
La funcion esta de mil maravillas !!!!
@fantasman
muchas gracias ya habia visto otras pero me daban errores al poner millones completos