viernes, marzo 29, 2013

Convertir números a texto (letras) en Excel


En estos momentos tengo la necesidad de pasar resultado en numero a letras, buscando en la web encontré varios que se refiere al mismo método, pero como a mi no me gusta todo escrito en mayúscula, lo adapte a Minúsculas, hasta el momento no he detectado problemas
Los valores los expresa en Pesos, si lo necesitan en otra moneda, busquen la palabra "Pesos" y la cambian por la que necesiten


If Trim(CADMILES & CADCIENTOS) = "Un" Then
CADENA = CADENA & "Uno Pesos" & DECIMALES & "/100"
Else
If MILES & CIENTOS = "000000" Then
CADENA = CADENA & " " & Trim(CADCIENTOS) & " Pesos " & "con" & " " & DECIMALES & "/100 .-"

Else
CADENA = CADENA & " " & Trim(CADCIENTOS) & " Pesos " & "con" & " " & DECIMALES & "/100 .-"




los pasos son

1) Seleccionar la celda (vacía) donde se hará la conversión.

2) Para Excel 2003, dar clic en Herramientas/Macro/Editor de Visual Basic; para Excel 2007, dar clic en la ficha Vista, opción Macro, Ver Macros, escribir el nombre y clic en crear. Con cualquiera de las dos versiones aparece una ventana de nombre Microsoft Visual Basic – Libro1, ahí es donde se pegará el siguiente código (escrito mas abajo), antes borra las dos líneas de código que ahí aparecen.

3)Guardas los cambios y cierras la ventana Microsoft Visual Basic.

4)Da clic en el ícono de Excel Insertar función “fx”, aparece una ventana en la cual debes buscar CONVIERTENUMLETRA, cuando salga la seleccionamos y damos clic en aceptar, en la siguiente ventana escribimos la celda que contiene el número a convertir, por ejemplo “e5″.

5)Ahora presionas ENTER y disfrútalo.


código



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, 1)
CADMILES = CONVIERTECIFRA(MILES, 1)
CADCIENTOS = CONVIERTECIFRA(CIENTOS, 0)
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(CADMILES & CADCIENTOS) = "Un" Then
CADENA = CADENA & "Uno Pesos" & DECIMALES & "/100" & " M.N. "
Else
If MILES & CIENTOS = "000000" Then
CADENA = CADENA & " " & Trim(CADCIENTOS) & " Pesos " & "con" & " " & DECIMALES & "/100 .-"

Else
CADENA = CADENA & " " & Trim(CADCIENTOS) & " Pesos " & "con" & " " & DECIMALES & "/100 .-"
End If
End If
CONVIERTENUMLETRA = Trim(CADENA)
End Function

Function CONVIERTECIFRA(TEXTO, SW)
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 = "Diecinieve"
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"
If SW Then
TXTUNIDAD = "Un"
Else
TXTUNIDAD = " Uno"
End If
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





En lo particular me funciono bien

Fuentes

http://vateos.net/

http://www.taringa.net/


No hay comentarios:

Related Posts Plugin for WordPress, Blogger...