Mostrando entradas con la etiqueta funciones en excel. Mostrar todas las entradas
Mostrando entradas con la etiqueta funciones en excel. Mostrar todas las entradas

lunes, 14 de noviembre de 2011

20. FUNCIÓN QUE DEVUELVE EL LITERAL DE UN NUMERO


Función que devuelve el literal de un número entero entre 0 y 100
Ej. 98 -> Noventa y Ocho
INSTRUCCIONES
1. Cree un nuevo Libro y Modulo nuevo
2. Transcriba el siguiente código:

Function aLiteral(ByVal valor As Double) As String
  Dim literal As String
  valor = Round(valor, 0)
  valor = Abs(valor)
  Dim numeros(100) 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(20) = "veinte"
  numeros(30) = "treinta"
  numeros(40) = "cuarenta"
  numeros(50) = "cincuenta"
  numeros(60) = "sesenta"
  numeros(70) = "setenta"
  numeros(80) = "ochenta"
  numeros(90) = "noventa"
  numeros(100) = "cien"
  If (valor = 0) Then
    literal = numeros(valor)
  Else
    Do
      If (valor >= 100) Then
        If (valor = 100) Then
          literal = numeros(100)
          valor = valor - valor
        Else
          valor = 0
          On Error GoTo salir
        End If
      End If
      If (valor >= 10 And valor < 100) Then
        If (valor < 16) Then
          literal = literal & numeros(valor)
          valor = valor - valor
        Else
          literal = literal & numeros(Int(valor / 10) * 10)
          valor = valor - (Int(valor / 10) * 10)
          If (valor > 1) Then
            literal = literal & " y "
          End If
        End If
      End If
      If (valor > 0 And valor < 10) Then
        literal = literal & numeros(valor)
        valor = valor - valor
      End If
    Loop Until (valor = 0)
  End If
salir:
  aLiteral = literal
End Function

3. Guarde o siga con los siguientes temas (Crear un complemento e Instalarlo)
Nota.- Como puede verse esta función podría mejorarse para las centenas, unidades de mil, decenas de mil, etc. y podría agregarse soporte para decimales o usarse para otro tipo de literales.

VÍDEO DEMOSTRATIVO: