|
|
#31 (permalink) |
![]() Fecha de Ingreso: diciembre-2007
Mensajes: 1
|
Re: Pasar de números a letras en Excel
|
|
|
|
|
|
#33 (permalink) |
![]() Fecha de Ingreso: febrero-2008
Mensajes: 2
|
Re: Pasar de números a letras en Excel
[Hola Miago ya hice todo el procedimiento y me funciona pero cuando cierro la hora y la vuelvo a abrirr me sale eror como que no me reconoce la formula, como hago para tenerlo fijo y utilizarlo como funcion de excel gracias
|
|
|
|
|
|
#34 (permalink) |
![]() Fecha de Ingreso: febrero-2008
Mensajes: 2
|
Re: Pasar de números a letras en Excel
[Hola Amigo ya hice todo el procedimiento y me funciona pero cuando cierro la hoja y la vuelvo a abrir me sale error como que no me reconoce la formula, como hago para tenerlo fijo y utilizarlo como funcion de excel gracias
|
|
|
|
|
|
#35 (permalink) |
![]() ![]() Fecha de Ingreso: agosto-2004
Mensajes: 714
|
Re: Pasar de números a letras en Excel
Con la hoja de Excel abierta; abre el editor de VB, selecciona Insertar Módulo; pegas la macro; guardas la macro con el nombre que desees. Cierras el editor.
En la celda en la que aplicarás la función; usa el nombre de la macro en la fórmula para convertir los números a texto. Salva (guarda) la hoja y en la siguiente apertura debe reconocer la fórmula y la función. Saludos... |
|
|
|
|
|
#36 (permalink) |
![]() Fecha de Ingreso: marzo-2008
Mensajes: 2
|
Re: Pasar de números a letras en Excel
bueno primero knada agradezco al brother kpudo hacer el string y para los que siguen con el problema de los cientos de miles solo modfique unas cosillas, de hecho casi nada, espero y es y les funcion como ami y gracias nuevamente al brother juan luis.
Function num_letras(Numero As Double) As String Dim Letras As String Dim HuboCentavos As Boolean Dim Decimales As Double Decimales = Numero - Int(Numero) Numero = Int(Numero) Dim Numeros(90) As String Numeros(0) = "CERO" Numeros(1) = "UNO" Numeros(2) = "DOS" Numeros(3) = "TRES" Numeros(4) = "CUATRO" Numeros(5) = "CINCO" Numeros(6) = "SEIS" Numeros(7) = "SIETE" Numeros(8) = "OCHO" Numeros(9) = "NUEVE" Numeros(10) = "DIEZ" Numeros(11) = "ONCE" Numeros(12) = "DOCE" Numeros(13) = "TRECE" Numeros(14) = "CATORCE" Numeros(15) = "QUINCE" Numeros(16) = "DIESCISEIS" Numeros(17) = "DIESCISIETE" Numeros(18) = "DIESCIOCHO" Numeros(19) = "DIESCINUEVE" Numeros(20) = "VEINTE" Numeros(21) = "VEINTIUNO" Numeros(22) = "VEINTIDOS" Numeros(23) = "VEINTITRES" Numeros(24) = "VEINTICUATRO" Numeros(25) = "VEINTICINCO" Numeros(26) = "VEINTISEIS" Numeros(27) = "VEINTISIETE" Numeros(28) = "VEINTIOCHO" Numeros(29) = "VEINTINUEVE" Numeros(30) = "TREINTA" Numeros(40) = "CUARENTA" Numeros(50) = "CINCUENTA" Numeros(60) = "SESENTA" Numeros(70) = "SETENTA" Numeros(80) = "OCHENTA" Numeros(90) = "NOVENTA" Do '*---> Centenas de Millón If (Numero < 1000000000) And (Numero >= 100000000) Then If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero / 100000000) * 100000000)) < 1000000) Then Letras = Letras & "cien millones " Else Select Case Int(Numero / 100000000) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS" Case 7 Letras = Letras & "SETECIENTOS" Case 9 Letras = Letras & "NOVECIENTOS" Case Else Letras = Letras & Numeros(Int(Numero / 100000000)) End Select If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000) <> 5) And (Int(Numero / 100000000) <> 7) And (Int(Numero / 100000000) <> 9) Then Letras = Letras & "CIENTOS " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100000000) * 100000000) End If '*---> Decenas de Millón If (Numero < 100000000) And (Numero >= 10000000) Then If Int(Numero / 1000000) < 16 Then Letras = Letras & Numeros(Int(Numero / 1000000)) Letras = Letras & " MILLONES " Numero = Numero - (Int(Numero / 1000000) * 1000000) Else Letras = Letras & Numeros(Int(Numero / 10000000) * 10) Numero = Numero - (Int(Numero / 10000000) * 10000000) If Numero > 1000000 Then Letras = Letras & " y " End If End If End If '*---> Unidades de Millón If (Numero < 10000000) And (Numero >= 1000000) Then If Int(Numero / 1000000) = 1 Then Letras = Letras & " UN MILLON " Else Letras = Letras & Numeros(Int(Numero / 1000000)) Letras = Letras & " MILLONES " End If Numero = Numero - (Int(Numero / 1000000) * 1000000) End If '*---> Centenas de Millar If (Numero < 1000000) And (Numero >= 100000) Then If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) * 100000)) < 1000) Then Letras = Letras & "CIEN MIL " Else Select Case Int(Numero / 100000) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS MIL" Case 7 Letras = Letras & "SETECIENTOS MIL" Case 9 Letras = Letras & "NOVECIENTOS MIL" Case Else Letras = Letras & Numeros(Int(Numero / 100000)) End Select If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5) And (Int(Numero / 100000) <> 7) And (Int(Numero / 100000) <> 9) Then Letras = Letras & "CIENTOS MIL " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100000) * 100000) End If '*---> Decenas de Millar If (Numero < 100000) And (Numero >= 10000) Then If Int(Numero / 1000) < 16 Then Letras = Letras & Numeros(Int(Numero / 1000)) Letras = Letras & " MIL " Numero = Numero - (Int(Numero / 1000) * 1000) Else Letras = Letras & Numeros(Int(Numero / 10000) * 10) Numero = Numero - (Int((Numero / 10000)) * 10000) If Numero > 1000 Then Letras = Letras & " Y " Else Letras = Letras & " MIL " End If End If End If '*---> Unidades de Millar If (Numero < 10000) And (Numero >= 1000) Then If Int(Numero / 1000) = 1 Then Letras = Letras & " " Else Letras = Letras & Numeros(Int(Numero / 1000)) End If Letras = Letras & " MIL " Numero = Numero - (Int(Numero / 1000) * 1000) End If '*---> Centenas If (Numero < 1000) And (Numero > 99) Then If (Int(Numero / 100) = 1) And ((Numero - (Int(Numero / 100) * 100)) < 1) Then Letras = Letras & "CIEN " Else Select Case Int(Numero / 100) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS" Case 7 Letras = Letras & "SETECIENTOS" Case 9 Letras = Letras & "NOVECIENTOS" Case Else Letras = Letras & Numeros(Int(Numero / 100)) End Select If (Int(Numero / 100) <> 1) And (Int(Numero / 100) <> 5) And (Int(Numero / 100) <> 7) And (Int(Numero / 100) <> 9) Then Letras = Letras & "CIENTOS " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100) * 100) End If '*---> Decenas If (Numero < 100) And (Numero > 9) Then If Numero < 31 Then Letras = Letras & Numeros(Int(Numero)) Numero = Numero - Int(Numero) Else Letras = Letras & Numeros(Int((Numero / 10)) * 10) Numero = Numero - (Int((Numero / 10)) * 10) If Numero > 0.99 Then Letras = Letras & " Y " End If End If End If '*---> Unidades If (Numero < 10) And (Numero > 0.99) Then Letras = Letras & Numeros(Int(Numero)) Numero = Numero - Int(Numero) End If Loop Until (Numero = 0) '*---> Decimales If (Decimales >= 0) Then Letras = Letras & " PESOS " Letras = Letras & Format(Decimales * 100, "00") & "/100 M.N." End If num_letras = Letras End Function |
|
|
|
|
|
#40 (permalink) |
![]() Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 527
|
Re: Pasar de números a letras en Excel
Pega la macro en un modulo "normal". guardalo el libro con el nombre que desees, ahora, en "guardar como", elige "Complemento de microsoft excel", y listo. Anda a HERRAMIENTAS - COMPLEMENTOS, activalo y ya
Abraham |
|
|
|
|
|
#41 (permalink) |
![]() Fecha de Ingreso: mayo-2008
Mensajes: 3
|
Cita:
Iniciado por carlosmys
Function num_letras(Numero As Double) As String
Dim Letras As String Dim HuboCentavos As Boolean Dim Decimales As Double Decimales = Numero - Int(Numero) Numero = Int(Numero) Dim Numeros(90) As String Numeros(0) = "CERO" Numeros(1) = "UNO" Numeros(2) = "DOS" Numeros(3) = "TRES" Numeros(4) = "CUATRO" Numeros(5) = "CINCO" Numeros(6) = "SEIS" Numeros(7) = "SIETE" Numeros(8) = "OCHO" Numeros(9) = "NUEVE" Numeros(10) = "DIEZ" Numeros(11) = "ONCE" Numeros(12) = "DOCE" Numeros(13) = "TRECE" Numeros(14) = "CATORCE" Numeros(15) = "QUINCE" Numeros(16) = "DIESCISEIS" Numeros(17) = "DIESCISIETE" Numeros(18) = "DIESCIOCHO" Numeros(19) = "DIESCINUEVE" Numeros(20) = "VEINTE" Numeros(21) = "VEINTIUNO" Numeros(22) = "VEINTIDOS" Numeros(23) = "VEINTITRES" Numeros(24) = "VEINTICUATRO" Numeros(25) = "VEINTICINCO" Numeros(26) = "VEINTISEIS" Numeros(27) = "VEINTISIETE" Numeros(28) = "VEINTIOCHO" Numeros(29) = "VEINTINUEVE" Numeros(30) = "TREINTA" Numeros(40) = "CUARENTA" Numeros(50) = "CINCUENTA" Numeros(60) = "SESENTA" Numeros(70) = "SETENTA" Numeros(80) = "OCHENTA" Numeros(90) = "NOVENTA" Do '*---> Centenas de Millón If (Numero < 1000000000) And (Numero >= 100000000) Then If (Int(Numero / 100000000) = 1) And ((Numero - (Int(Numero / 100000000) * 100000000)) < 1000000) Then Letras = Letras & "cien millones " Else Select Case Int(Numero / 100000000) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS" Case 7 Letras = Letras & "SETECIENTOS" Case 9 Letras = Letras & "NOVECIENTOS" Case Else Letras = Letras & Numeros(Int(Numero / 100000000)) End Select If (Int(Numero / 100000000) <> 1) And (Int(Numero / 100000000) <> 5) And (Int(Numero / 100000000) <> 7) And (Int(Numero / 100000000) <> 9) Then Letras = Letras & "CIENTOS " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100000000) * 100000000) End If '*---> Decenas de Millón If (Numero < 100000000) And (Numero >= 10000000) Then If Int(Numero / 1000000) < 16 Then Letras = Letras & Numeros(Int(Numero / 1000000)) Letras = Letras & " MILLONES " Numero = Numero - (Int(Numero / 1000000) * 1000000) Else Letras = Letras & Numeros(Int(Numero / 10000000) * 10) Numero = Numero - (Int(Numero / 10000000) * 10000000) If Numero > 1000000 Then Letras = Letras & " y " End If End If End If '*---> Unidades de Millón If (Numero < 10000000) And (Numero >= 1000000) Then If Int(Numero / 1000000) = 1 Then Letras = Letras & " UN MILLON " Else Letras = Letras & Numeros(Int(Numero / 1000000)) Letras = Letras & " MILLONES " End If Numero = Numero - (Int(Numero / 1000000) * 1000000) End If '*---> Centenas de Millar If (Numero < 1000000) And (Numero >= 100000) Then If (Int(Numero / 100000) = 1) And ((Numero - (Int(Numero / 100000) * 100000)) < 1000) Then Letras = Letras & "CIEN MIL " Else Select Case Int(Numero / 100000) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS" Case 7 Letras = Letras & "SETECIENTOS" Case 9 Letras = Letras & "NOVECIENTOS" Case Else Letras = Letras & Numeros(Int(Numero / 100000)) End Select If (Int(Numero / 100000) <> 1) And (Int(Numero / 100000) <> 5) And (Int(Numero / 100000) <> 7) And (Int(Numero / 100000) <> 9) Then Letras = Letras & "CIENTOS " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100000) * 100000) End If '*---> Decenas de Millar If (Numero < 100000) And (Numero >= 10000) Then If Int(Numero / 1000) < 16 Then Letras = Letras & Numeros(Int(Numero / 1000)) Letras = Letras & " MIL " Numero = Numero - (Int(Numero / 1000) * 1000) Else Letras = Letras & Numeros(Int(Numero / 10000) * 10) Numero = Numero - (Int((Numero / 10000)) * 10000) If Numero > 1000 Then Letras = Letras & " Y " Else Letras = Letras & " MIL " End If End If End If '*---> Unidades de Millar If (Numero < 10000) And (Numero >= 1000) Then If Int(Numero / 1000) = 1 Then Letras = Letras & " " Else Letras = Letras & Numeros(Int(Numero / 1000)) End If Letras = Letras & " MIL " Numero = Numero - (Int(Numero / 1000) * 1000) End If '*---> Centenas If (Numero < 1000) And (Numero > 99) Then If (Int(Numero / 100) = 1) And ((Numero - (Int(Numero / 100) * 100)) < 1) Then Letras = Letras & "CIEN " Else Select Case Int(Numero / 100) Case 1 Letras = Letras & "CIENTO" Case 5 Letras = Letras & "QUINIENTOS" Case 7 Letras = Letras & "SETECIENTOS" Case 9 Letras = Letras & "NOVECIENTOS" Case Else Letras = Letras & Numeros(Int(Numero / 100)) End Select If (Int(Numero / 100) <> 1) And (Int(Numero / 100) <> 5) And (Int(Numero / 100) <> 7) And (Int(Numero / 100) <> 9) Then Letras = Letras & "CIENTOS " Else Letras = Letras & " " End If End If Numero = Numero - (Int(Numero / 100) * 100) End If '*---> Decenas If (Numero < 100) And (Numero > 9) Then If Numero < 31 Then Letras = Letras & Numeros(Int(Numero)) Numero = Numero - Int(Numero) Else Letras = Letras & Numeros(Int((Numero / 10)) * 10) Numero = Numero - (Int((Numero / 10)) * 10) If Numero > 0.99 Then Letras = Letras & " Y " End If End If End If '*---> Unidades If (Numero < 10) And (Numero > 0.99) Then Letras = Letras & Numeros(Int(Numero)) Numero = Numero - Int(Numero) End If Loop Until (Numero = 0) '*---> Decimales If (Decimales >= 0) Then Letras = Letras & " PESOS " Letras = Letras & Format(Decimales * 100, "00") & "/100 M.N." End If num_letras = Letras End Function |
|
|
|
|
|
#43 (permalink) |
![]() Fecha de Ingreso: mayo-2008
Mensajes: 3
|
Cita:
Al darle guardar se guarda todo el archivo de excel, que boton guarda la macro?
Iniciado por uzziber
Con la hoja de Excel abierta; abre el editor de VB, selecciona Insertar Módulo; pegas la macro; guardas la macro con el nombre que desees. Cierras el editor.
En la celda en la que aplicarás la función; usa el nombre de la macro en la fórmula para convertir los números a texto. Salva (guarda) la hoja y en la siguiente apertura debe reconocer la fórmula y la función. Saludos... |
|
|
|
|
|
#44 (permalink) |
![]() Fecha de Ingreso: junio-2008
Mensajes: 1
|
disculpen la intro.. pero copie el ultimo codigo y lo adapte para q sea en Moneda Nacional ( Nuevos Soles ) .. aqui existen algunas correciones.
'Funciones para convertir de números a letras 'Llamada : Letras(Número,Formato) - Formato 1-N.S., 2-Dólares, 3-Euros, 4 Francos Suizos Function Unidades(num, UNO) Dim U Dim Cad U = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE") Cad = "" If num = 1 Then If UNO = 1 Then Cad = Cad & "UNO" Else Cad = Cad & "UN" End If Else Cad = Cad & U(num - 1) End If Unidades = Cad End Function Function Decenas(num1, res) Dim D1 D1 = Array("ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE") D2 = Array("DIEZ", "VEINT", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA") If num1 > 10 And num1 < 20 Then Cad1 = D1(num1 - 10 - 1) Else Cad1 = D2((num1 \ 10) - 1) If (num1 \ 10) <> 2 Then If res > 0 Then Cad1 = Cad1 & " Y " Cad1 = Cad1 & Unidades(num1 Mod 10, 1) End If Else If res = 0 Then Cad1 = Cad1 & "E" Else Cad1 = Cad1 & "I" Cad1 = Cad1 & Unidades(num1 Mod 10, 1) End If End If End If Decenas = Cad1 End Function Function Cientos(num2) num3 = num2 \ 100 Select Case num3 Case 1 If num2 = 100 Then cad2 = "CIEN " Else cad2 = "CIENTO " End If Case 5 cad2 = "QUINIENTOS " Case 7 cad2 = "SETECIENTOS " Case 9 cad2 = "NOVECIENTOS " Case Else cad2 = Unidades(num3, 0) & "CIENTOS " End Select num2 = num2 Mod 100 If num2 > 0 Then If num2 < 10 Then cad2 = cad2 & Unidades(num2, num2) Else cad2 = cad2 & Decenas(num2, num2 Mod 10) End If End If Cientos = cad2 End Function Function Miles(num4) If (num4 >= 100) Then cad3 = Cientos(num4) Else If (num4 >= 10) Then cad3 = Decenas(num4, num4 Mod 10) Else cad3 = Unidades(num4, 0) End If End If cad3 = cad3 & " MIL " Miles = cad3 End Function Function Millones(cant) If cant = 1 Then ter = " " Else ter = "ES " End If If (cant >= 1000) Then cantl = cantl & Miles(cant \ 1000) cant = cant Mod 1000 End If If cant > 0 Then If cant >= 100 Then cantl = cantl & Cientos(cant) Else If cant >= 10 Then cantl = cantl & Decenas(cant, cant Mod 10) Else cantl = cantl & Unidades(cant, 0) End If End If End If Millones = cantl & " MILLON" & ter End Function Function decimales(numero As Single) As Integer Dim iaux As Integer iaux = numero - Application.Round(numero, 2) decimales = iaux End Function Function letras(cantm As Variant, ByVal mon As Integer) As String Dim cants1 As String, num1 As Variant, num2 As Variant num1 = cantm \ 1000000 num2 = cantm - (num1 * 1000000) cents = (num2 * 100) Mod 100 If cents = 0 Then cents1 = "00" Else cents1 = Format(cents) End If cantm = cantm - (cents / 100) If cantm >= 1000000 Then cantlm = Millones(cantm \ 1000000) cantm = cantm Mod 1000000 End If If cantm > 0 Then If (cantm >= 1000) Then cantlm = cantlm & Miles(cantm \ 1000) cantm = cantm Mod 1000 End If End If If cantm > 0 Then If cantm >= 100 Then cantlm = cantlm & Cientos(cantm) Else If cantm >= 10 Then cantlm = cantlm & Decenas(cantm, cantm Mod 10) Else cantlm = cantlm & Unidades(cantm, 1) End If End If End If If mon = 1 Then letras = "(" & cantlm & " con " & cents1 & "/100 NUEVOS SOLES)" Else If mon = 2 Then letras = "(" & cantlm & " con " & cents1 & "/100 DOLARES AMERICANOS)" Else If mon = 3 Then letras = "(" & cantlm & " con " & cents1 & "/100 EUROS)" Else letras = "(" & cantlm & " con " & cents1 & "/100 CHF)" End If End If End If End Function Y gracias a todos los colaboradores... |
|
|
|