Mostrando entradas con la etiqueta Visual Basic. Mostrar todas las entradas
Mostrando entradas con la etiqueta Visual Basic. Mostrar todas las entradas

domingo, 31 de julio de 2011

Función para convertir NÚMEROS en TEXTO en VBA para Excel

Esta función convierte a letras tus números. La función es "num2text". 
Copia lo siguiente en VBA:
Public Function Num2Text(ByVal value As Double) As String
value = Int(value)
    Select Case value
        Case 0: Num2Text = "cero"
        Case 1: Num2Text = "un"
        Case 2: Num2Text = "dos"
        Case 3: Num2Text = "tres"
        Case 4: Num2Text = "cuatro"
        Case 5: Num2Text = "cinco"
        Case 6: Num2Text = "seis"
        Case 7: Num2Text = "siete"
        Case 8: Num2Text = "ocho"
        Case 9: Num2Text = "nueve"
        Case 10: Num2Text = "diez"
        Case 11: Num2Text = "once"
        Case 12: Num2Text = "doce"
        Case 13: Num2Text = "trece"
        Case 14: Num2Text = "catorce"
        Case 15: Num2Text = "quince"
        Case Is < 20: Num2Text = "dieci" & Num2Text(value - 10)
        Case 20: Num2Text = "veinte"
        Case Is < 30: Num2Text = "veinti" & Num2Text(value - 20)
        Case 30: Num2Text = "treinta"
        Case 40: Num2Text = "cuarenta"
        Case 50: Num2Text = "cincuenta"
        Case 60: Num2Text = "sesenta"
        Case 70: Num2Text = "setenta"
        Case 80: Num2Text = "ochenta"
        Case 90: Num2Text = "noventa"
        Case Is < 100: Num2Text = Num2Text(Int(value \ 10) * 10) & " y " & Num2Text(value Mod 10)
        Case 100: Num2Text = "cien"
        Case Is < 200: Num2Text = "ciento " & Num2Text(value - 100)
        Case 200, 300, 400, 600, 800: Num2Text = Num2Text(Int(value \ 100)) & "cientos"
        Case 500: Num2Text = "quinientos"
        Case 700: Num2Text = "setecientos"
        Case 900: Num2Text = "novecientos"
        Case Is < 1000: Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100)
        Case 1000: Num2Text = "mil"
        Case Is < 2000: Num2Text = "mil " & Num2Text(value Mod 1000)
        Case Is < 1000000: Num2Text = Num2Text(Int(value \ 1000)) & " mil"
            If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000)
        Case 1000000: Num2Text = "un millón"
        Case Is < 2000000: Num2Text = "un millón " & Num2Text(value Mod 1000000)
        Case Is < 1000000000000#: Num2Text = Num2Text(Int(value / 1000000)) & " millones"
            If (value - Int(value / 1000000) * 1000000) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000) * 1000000)
        Case 1000000000000#: Num2Text = "un billón"
        Case Is < 2000000000000#: Num2Text = "un billón " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
        Case Else: Num2Text = Num2Text(Int(value / 1000000000000#)) & " billones"
            If (value - Int(value / 1000000000000#) * 1000000000000#) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
    End Select
End Function
Espero les sirva.
Si quieres usar esta función siempre que abras el Excel sin necesidad de abrir el archivo donde la creaste, debes subirla a los Complementos de Excel. Para ver como hacer esto, haz click aquí.
Si quieres que incluye decimales, haz click aquí.

domingo, 17 de julio de 2011

Qué es una Macro y para que me puede servir?

Una macro es la automatización de una tarea mediante el lenguaje VBA (Visual Basic para Aplicaciones) el cual se encuentra incorporado en las aplicaciones de Microsoft Office, como Word, Excel y PowerPoint.

¿Cómo grabar un macro en Excel?

En la versión 2003, basta con seguir la ruta Herramientas/Macros/Grabar nueva macro...o mediante el método abreviado Alt + F8. Luego todas (o casi todas) las acciones o tareas que realice el usuario en Excel quedaran grabadas en código VBA dentro de un módulo, el cual se ubica en el libro de trabajo actual, en un libro personal de macros o en un libro nuevo. Cuando el usuario finaliza las tareas se debe detener la grabación del macro. Luego es posible editar el código en VBA del macro grabado para adecuarlo a las necesidades requeridas que se deseen satisfacer.

También es posible escribir un código sin necesidad de grabar un macro, por supuesto se requiere conocer el lenguaje, sintaxis, y funciones de VBA.

EL PODER DE LAS MACROS

Una vez dominado el lenguaje VBA el usuario es capaz de automatizar cualquier tarea que realice Excel, permitiendo ahorrar tiempo y esfuerzos.
Para dar una idea del poder de los macros, es posible desarrollar un sistema de información que se conecte a una base de datos con un número de registros que supere el número de filas de una hoja de Excel, ejecutar una consulta, actualizar indicadores estadísticos en función a los resultados de la consulta, guardar los resultados en un reporte o listado, y generar un informe con gráficos y todo en cuestión de segundos.