lunes, 10 de agosto de 2020

Taller final

1) Encontrar la venta total 
2) Mostrar total en letras
3) Ingresar botón con macro que limpie  e imprima (2)
4) Mostrar un mensaje con exclamación con visual Basic



Octava     Guía y Taller  de Excel Avanzado

 

Macros  en Excel

Las Macros en Excel son un conjuntos de instrucciones que se ejecutan de manera secuencial por medio de una orden de ejecución, claro esta que una Macro puede invocar a otras, logrando de esta forma obtener operaciones cada vez mas complejas.

En el caso de Excel el lenguaje empleado para el uso de Macros es VBA (Visual Basic para Aplicaciones), Excel cuenta con un "Editor de Visual Basic"  o también conocido como "Editor de VBA" que permite la creación, y/o mantenimiento de las Macros que se tengan disponibles.

¿Para qué sirve una Macro en Excel?

Las Macros en Excel son útiles entre otras cosas por que permiten la automatización de tareas repetitivas, por ejemplo si se da cuenta que todos lo días se encuentra creando la misma tabla dinámica (pero con distintos datos), o colocando el mismo formato a una hoja, entonces es el momento de automatizar dicha labor por medio de Macros.

Crear una Macro:

El punto fuerte a favor del uso de Macros, es que es sencillo de aprender a crearlas y ejecutarlas, crear Macros es simple, y se puede llegar a ahorrar mucho tiempo remplazando aquellas tareas repetitivas por Macros que usted mismo haya creado, uno de los primeros pasos para acercarse al uso de Macros puede ser el comenzar a utilizar el Grabador de macros

Clic en el siguiente link

https://www.youtube.com/watch?v=cMKdXk4be3E


TALLER






Novena    Guía y Taller  de Excel Avanzado

Visual Basic  Excel


El Editor de Visual Basic, o Editor de VBA,  forma parte del programa Microsoft Excel, este Editor nos permite crear, modificar o emplear Macros, las cuales nos permiten ampliar el funcionamiento por defecto de la funcionalidad de Excel.

Este editor es también conocido como VBE por sus siglas en ingles (Visual Basic Editor).

Editor de Visual Basic 300x222, El Editor de Visual Basic

¿Cómo acceder al Editor de Visual Basic?

Para para poder acceder al Editor de Visual Basic se puede emplear la combinación de teclas ALT + F11, si bien esto nos permite ingresar y trabajar con el Editor de VBA, lo mejor es tener disponible una Ficha conocida como Ficha Programador o Ficha Desarrollador, la cual contiene mas opciones.

Primer Ejercicio

Mostrando un mensaje

Sólo tienes que insertar en tu macro el comando MsgBox. En el ejemplo siguiente:

MsgBox "texto del mensaje"

Pasos:

ALT + F11  

- Clic en el menú herramientas

- Clic en macros

- Digitar el nombre de la macro y clic en crear

-Pegamos el código o lo digitamos

 Código: MsgBox "mi nombre es..."

- Cerrar.

-Ejecutar la macro

Segundo Ejercicio

Escribir la fecha y la hora actual en la hoja de cálculo. El siguiente ejemplo inserta estos datos en la celda A1, vea.

Sub escribirDataEHora ()
Range ("A1") = Now
End Sub

Tercer  Ejercicio

Código para pasar numero a letra con decimales


'FUNCION ALETRAS
Function ALETRAS(Numero As Double, Optional DecimalEnLetra As Boolean) As String
 
'Declaracion de variables
 
Dim Moneda As String
Dim Monedas As String
Dim Centavo As String
Dim Centavos As String
Dim Con As String
Dim NumCentavos As Double
Dim Letra As String
Const Maximo = 1999999999.99
 
 
' Parámetros
Moneda = "Peso"
Monedas = "Pesos"
Decimal1 = "Centavo"
Decimales = "Centavos"
Con = "Con"
 
 
'Si el numero esta dentro de 0 y 1999999999.99 (Maximo) entonces
'convertir el numero a letras
 
If (Numero >= 0) And (Numero <= Maximo) Then
    
    Letra = LETRAS((Fix(Numero)))
    
    'Si solo es un numero entonces
    'agregar la moneda en singular
    If (Numero = 1) Then
        Letra = Letra & " " & Moneda
    'De lo contrario agregar la moneda en plural
    Else
        Letra = Letra & " " & Monedas
    End If
    
    
    NumCentavos = Round((Numero - Fix(Numero)) * 100)   'Pasar a decimales (al numero le resta el numero entero y lo multiplica por 100)
    
    'Si los centvos son mayores a cero entonces
    If NumCentavos >= 0 Then
        'Si el parámetro DecimalEnLetra es VERDADERO
        If DecimalEnLetra Then
        'Convertir los centavos en letra
            Letra = Letra & " " & Con & " " & LETRAS(Fix(NumCentavos))
                
            'Si el centavo es uno agregar leyenda Centavo (Singular)
            If (NumCentavos = 1) Then
                Letra = Letra & " " & Decimal1
            'De lo contrario agregar la leyenda Centavos (Plural)
            Else
                Letra = Letra & " " & Decimales
            End If
         'De lo contrario mostrar los centecimos como número
         Else
            'Si los centavos son menores a 10 entonces
            If NumCentavos < 10 Then
                Letra = Letra & " " & Con & " " & " 0" & NumCentavos & "/100"
            Else
            'De lo contrario
                Letra = Letra & " " & Con & " " & NumCentavos & "/100"
            End If
         End If
    End If
 
    'Regresar el resultado final de la conversión
    ALETRAS = Letra
 
Else
    'Si el Numero no está dentro de los límites mostrar un mensaje de error
    ALETRAS = "ERROR: el importe esta fuera del límite."
End If
 
End Function
 
'Funcion LETRAS
Function LETRAS(Numero As Long) As String
 
'Declaracion de las variables
Dim Unidades, Decenas, Centenas
Dim Resultado As String
 
'Numeros en letras
Unidades = Array("", "Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidos", "Veintitres", "Veinticuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve")
Decenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")
Centenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
 
 
Select Case Numero
    Case 0
        Resultado = "Cero"
    Case 1 To 29
        Resultado = Unidades(Numero)
    Case 30 To 100
        Resultado = Decenas(Numero \ 10) + IIf(Numero Mod 10 <> 0, " y " + LETRAS(Numero Mod 10), "")
    Case 101 To 999
        Resultado = Centenas(Numero \ 100) + IIf(Numero Mod 100 <> 0, " " + LETRAS(Numero Mod 100), "")
    Case 1000 To 1999
        Resultado = "Mil" + IIf(Numero Mod 1000 <> 0, " " + LETRAS(Numero Mod 1000), "")
    Case 2000 To 999999
        Resultado = LETRAS(Numero \ 1000) + " Mil" + IIf(Numero Mod 1000 <> 0, " " + LETRAS(Numero Mod 1000), "")
    Case 1000000 To 1999999
        Resultado = "Un Millón" + IIf(Numero Mod 1000000 <> 0, " " + LETRAS(Numero Mod 1000000), "")
    Case 2000000 To 1999999999
        Resultado = LETRAS(Numero \ 1000000) + " Millones" + IIf(Numero Mod 1000000 <> 0, " " + LETRAS(Numero Mod 1000000), "")
End Select
 
LETRAS = Resultado 
End Function

 



Pasos:

Seleccionar y copiar el código

- Abrir VisualBasic

- Clic en Insertar

-Clic en Modulo

- Pegamos el código

- Cerrar

- Clic donde saldrá los números en texto

- Abrír  la función con igual, digitar aletras, paréntesis, clic en la celda a pasar en letras, cerrar el paréntesis. Enter

=ALETRAS(C3)

TALLER EN FORMACIÓN


8.  En el total que salga en letras en la siguiente celda:

9.  Una macro con un botón que salga el mensaje de la agencia de viaje.

TALLER

1) Crear  macros con el comando 

msgbox en VBA ejemplo sencillo

    MsgBox "Bienvenidos a esta web!", vbExclamation

mensaje con exclamación

MsgBox "Bienvenidos a esta web!", vbYesNo, "Mi título"
 

msgbox en vba con título y botones

Combinemos varios botones
MsgBox "Bienvenidos a esta web!", vbYesNo + vbExclamation, "Mi título"