Saltar al contenido

Convertir de letras a números


Antoni

Recommended Posts

publicado

Hola a todos:

Os adjunto una función para convertir texto a número, ejemplo:

De:

Cuatrocientos veintiocho mil quinientos veinte con cuarenta y tres

A:

428520,43

No se me ocurre que utilidad puede tener, pero vaya Vd. a saber, hay tanto "zumbao" por aquí,....jajaja

Saludos

PD: Va de 0 a 999.999.999,999999999

De letras a números.xls

publicado

Pues supongo que yo seré uno de "esos zumbaos" ya que hice algo parecido con fórmulas, que seguro tiene más trabajo que con un código, ¿no? jejejejejee, y por ejemplo si tienes creados archivos con talones, o cheques, o para facturación si quieres presentarlo de ambas maneras, en fin, que colores hay para el pincel.

Como siempre muchas gracias por tus grandes aportes amigo.

Un abrazo, Germán.

  • 2 weeks later...
publicado

Para complementar aquí una función que hace lo contrario que me encontré por la web. :chuncky:

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

•=Num_Texto(14) >> el resultado sería: “CATORCE”

•=Num_Texto(A1) >> el resultado sería: “CATORCE”, si A1 contiene el número 14

publicado
Pues supongo que yo seré uno de "esos zumbaos" ya que hice algo parecido con fórmulas, que seguro tiene más trabajo que con un código, ¿no? jejejejejee, y por ejemplo si tienes creados archivos con talones, o cheques, o para facturación si quieres presentarlo de ambas maneras, en fin, que colores hay para el pincel.

Como siempre muchas gracias por tus grandes aportes amigo.

Un abrazo, Germán.

Comparto contigo y con Germán lo de ser unos "zumbaos" y, si Germán hizo algo parecido con fórmulas, yo también con un conversor de letras romanas a números. Mejor dicho, un conversor de romanos como Macro Antonio a las fórmulas.

ConversorRomanos.zip

  • 5 months later...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.