Sv Community El Salvador
Soporte y Tecnología => Programas => Mensaje iniciado por: osmeny en mayo 15, 2008, 09:34:17 am
-
hola en mi trabajo tengo que generar fcturas en excel entonces necesito una funcion que me convierta los numeros a letras , sabe alguien de esto ????
agradeceria la info
-
aca te dejo algo que me encontre por ahi
pasos
1- herramientas
1.1 macro
1.1.1 editor de visual basic y pegas el codigo
Luego en la celda que seleccionada solo digitas: =Num_texto(celda que contiene valor numerico)
Function Num_texto(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 CON " & Decimales & "/100"
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100"
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & Decimales & "/100"
End If
End If
Num_texto = 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 = "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"
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
-
Espero que esto te ayude :thumbsup:
http://www.forosdelweb.com/f90/formato-numeros-excel-214297/#post724827
http://www.mundogamers.com/trucospc/truco/205.html
http://foros.emagister.com/tema-numero_a_texto_en_excel-12890-119491-1.htm
http://www.macuarium.com/foro/lofiversion/index.php/t127558.html
San Google te puede ayudar a encontrar mas posibles soluciones :p
-
por si todavia no hayas como hacerlo XD......
-
hey mara no puedo pegar el codigo , osea si habro el macro y luego me aparece editor de basic , le doy donde dice libro uno ero de ai como es que llamo la funcio, la busco en la creadas por el usuario y nada que ver , no me la llama y no la encuentra, en que la estoy cagando
-
:huh:
descargaste el .rar que deje adjunto a mi respuesta anterior ?¿?¿?
ahi te deje un ejemplo claro de la forma de usarlo.....
-
:huh:
descargaste el .rar que deje adjunto a mi respuesta anterior ?¿?¿?
ahi te deje un ejemplo claro de la forma de usarlo.....
Bueno, aqui una pregunta para los programadores, veo el codigo y le entiendo a algunas cosas y otras no,
COMO HAGO PARA MODIFICAR EL CODIGO ANTERIOR PARA QUE EL EXCEL ME LEA ESTO:
(http://www.drupload.com/uploads/723Dibujo.bmp)
Y lo convierta en esto:
Rumbo Sur setenta y un grados cuarenta y nueve segundos cero seis punto noventa y ocho segundos Este, Longitud cincuenta punto treinta metros.
Uso un software que me pasa la tabla en Excel tal y como lo ven ahi, y luego hago la "traduccion" pero solo del las siglas N=Norte, S=Sur, E=Este y W=Oeste.
Se los agradeceré muchiiisimo..... :drinks:
-
Creo que el archivo adjunto te servirá como punto de partida.
Es el mismo que puso tekun, pero con dos modificaciones:
1. No agrega la palabra "x/100 Centavos" para los decimales
2. Convierte los centavos a letras en lugar de dejarlas en forma numerica
Y una adición:
1. Función "cardinal", que devuelve el nombre del punto cardinal en base a su identificador {S,N,E,O}
Lo demas es simple concatenacion de cadenas.
Suerte y espero haberte entendido.
-
Creo que el archivo adjunto te servirá como punto de partida.
Es el mismo que puso tekun, pero con dos modificaciones:
1. No agrega la palabra "x/100 Centavos" para los decimales
2. Convierte los centavos a letras en lugar de dejarlas en forma numerica
Y una adición:
1. Función "cardinal", que devuelve el nombre del punto cardinal en base a su identificador {S,N,E,O}
Lo demas es simple concatenacion de cadenas.
Suerte y espero haberte entendido.
Oh santo hombre de las ciencias de la computación, os agradesco tan noble y eficaz ayuda, que los dioses te protejan y te guien siempre por la senda del conocimiento y la verdad... y como muestra de mi congratulación para con usted le pido que reciba mi humilde ofrenda de agradecimiento, algo que en este sagrado lugar llaman un +K... :sur:
-
Que bien que te haya funcionado :thumbsup: aunque realmente fue tekun el que puso el codigo base (el de NightOwl es similar tambien).
PD: gracias por el +K :yahoo: