domingo, 25 de marzo de 2012

Creación de un formulario de Trabajo

En esta ocasión aprenderemos a usar la aplicación de los formularios en áreas de trabajo este que crearemos hoy contendrá lo que es la opción de: Facturar, Cotizar, Mostrar el Detalle, y Ayuda.


Primero: deberemos generar nuestro documento en el cual incluiremos cuatro hojas de trabajo y en la segunda crearemos nuestra base de datos, en la cual estará un listado ficticio de productos, sus códigos, precios y su existencia.




Aquí también deberemos generar lo que serán nuestras matrices las cuales nos servirán para encontrar los valores al momento de aplicar la fórmula BUSCARV.. en el formato de la factura.










Segundo: En la primera hoja generaremos nuestro formato para el trabajo de nuestra factura.
Este formato contendrá todos los datos importantes que se deben obtener en una compra.



Tercero: Comenzaremos a escribir las fórmulas.
Aqui utilizaremos mucho la lógica y el funcionamiento que le daremos será: 
Que al momento de escribir un código aparezca el nombre producto y el precio del producto, y al escribir la cantidad del producto requerido se multiplique automáticamente y lo coloque en la columna del total, y luego sume todos los totales y de como resultado el total a pagar.




Entres las fórmulas que incluiremos en este formato de factura, aplicaremos la de buscar valor esta fórmula ya la habíamos explicado anteriormente en los ejercicios primeros.

 La fórmula que ira en la primera fila tendrá la siguiente lógica:
=SI(C14="","",BUSCARV(C14,datos,2,FALSO))
Será: si C14 ( la columna en donde ingresaremos el código). es igual a nada (es decir que no se ah escrito nada todavía) no se haga nada, sino, que busque el valor de C14, en la matriz "datos", en la segunda columna, y los datos no se encuentran ordenados.




Aquí sera la misma fórmula que en la de producto, solamente que ya no estaremos buscando la columna 2 (el producto) si no la columna 3 (el precio). 





La existencia, igualmente será la fórmula aplicada en las anteriores solamente que aquí no se buscará ni el producto ni el precio se buscara lo que es la cantidad de productos que se tienen, es decir (4).




 La fórmula que utilizaremos para hallar el total sera la siguiente: =SI(C14="","",SI(F14="","",F14*E14))
Esta funciona de la siguiente manera: si C14 (la celda donde ingresaremos el código) es igual a nada ( no posee ningún valor ) entoncs que no haga nada, sino, si F14 ( la cantidad) es igual a nada entonces que no haga nada, si no que multiplique F14 * E14 (el precio).


Aquí será una fórmula similar a la de la fila anterior solamente que aqui realizaremos otro condicionamiento;
=SI(C15="","",SI(C14="","debe usar la fila de arriba",SI(C15="","",BUSCARV(C15,datos,2,FALSO))))
Funcionara así: si C15 es igual a nada entonces que no realice nada, si no si C14 es igual a nada entonces que despliegue el siguiente mensaje: "debe usar la fila de arriba", ESTO INDICARÁ QUE SE DEBERÁ UTILIZAR LA PRIMERA FILA SINO NO SE PODRÁ CONTINUAR TRABAJANDO.
y luego dirá que si C15 es igual a nada entonces nada sino, que busque el valor de C15 en la matriz datos, en la columna 2, y que los datos no están ordenados.



En la columna del precio escribiremos la fórmula la cual será casi similar a la de la fila anterior solo que esta tendrá un condicionamiento especial.
=SI(C15="","",SI(C14="",0,BUSCARV(C15,datos,3,FALSO)))
Funcionará así: Si C15 es igual a nada entonces nada, sino, si C14 es igual a nada entonces que coloque un 0 ESTO SERÁ PARA OBLIGAR AL FACTURADOR A UTILIZAR LA PRIMERA FILA, sino buscar el valor de C15, en la matriz datos, en la columna 3, y los datos no están ordenados.



Luego copiaremos la fórmula haciendo click sostenido y jalando hacia abajo.



Igual que en el paso anterior copiaremos la fórmula.



Copiaremos la fórmula del total.



y luego copiaremos también la fórmula de la existencia.



Por último escribiremos la fórmula para el total a pagar la cual será la siguiente:
=SI(G14="","",SUMA(G14:G25))
Funciona así: si G14 (que sera la primera suma de los totales) no posee ningún valor entonces que no haga nada sino que sume todos los valores desde G14 hasta G25.


Luego procederemos a trabajar en nuestra hoja de registro, hacia la cual transportaremos los datos más importantes de una factura a través de una macro, pero primero deberemos crear nuestros encabezados.


Luego grabaremos una macro, en la cuál transportaremos los datos de la factura hacia nuestra hoja de registro.




Comenzaremos copiando el nombre desde la factura hasta el registro. (Haciendo click derecho, copiar y luego click derecho pegar.




Copiaremos también la dirección del comprador utilizando el mismo paso anterior.



Repetiremos el paso nuevamente para copiar el numero de nit del comprador.


Ahora copiaremos la fecha haciendo click derecho copiar pero al momento de ir a pegar esto en la hoja del registro, deberemos hacer click derecho, luego pegado especial, y luego seleccionaremos valores.




Repetiremos el mismo paso con el número de factura, haciendo un pegado especial y luego seleccionando valores.



Volveremos a repetir el mismo paso haciendo click en pegado especial y luego seleccionando valores para pegar el total.



Luego seleccionaremos todos los datos que hemos copiado dentro de la fila y le quitaremos el borde, para generar una mejor presentación.





Luego le aplicaremos un formato de fecha, a la columna en la cual insertaremos la fecha de la factura.




Aquí insertaremos una nueva fila.




Luego regresaremos a la hoja en donde tenemos nuestra factura y pulsando la tecla "control" seleccionaremos  algunas celdas que desearemos borrar su contenido y luego pulsaremos la tecla "supr" para eliminar los campos dentro de las celdas seleccionadas.


y luego haremos click para parar de grabar nuestra macro.


Luego deberemos editar nuestra macro ya que cada vez que guardemos la factura se convertirá tedioso estar aumentando un número cada vez que la guardemos, es por eso que le aumentaremos un número.
Iremos hacia Visual Basic pulsando Alt + F11




Luego tendremos que colocar la siguiente fórmula para que aumente un número en la factura.

Dim Fact As Integer
    Fact = [iv1]
    [j8] = Fact + 1
    [iv1] = Fact + 1




Luego de haber realizado esto, lo cerraremos y regresaremos a excel, y ahi en la opción programador insertaremos un botón al cual previamente le asignaremos la macro que ya tenemos echa.



Luego de haber dibujado nuestro botón haremos click derecho y haremos click sobre la opción asignar macro. Y le asignaremos la macro ya hecha, la cual en su caso sera "Macro1".



Luego deberemos ir hacia la hoja en donde tenemos la cotización.
Asignando así los títulos a algunas celdas ya que luego a través de unos cuadros de control encontraremos automáticamente los valores.


Empezaremos a escribir todas las fórmulas y luego nos ocuparemos de realizar los cuadros de control.
Vincularemos la primera con la celda "Z1" ya que es una celda alejada de nuestra área de trabajo, y también porque luego vincularemos un cuadro de control hacia la misma celda, y también utilizaremos la matriz de productos para ubicar el valor de Z1.



Luego escribiremos la fórmula del precio, que llevará casi la misma fórmula que en el producto solamente que esta utilizara los valores de la Z1 también pero basándose, en la matriz, de "PRECIOS".



Luego encontraremos el valor del enganche, y este estará vinculado con la celda Z2 ya que ahí mismo vincularemos el cuadro de control del enganche, el cual procederemos a crear después.



El financiamiento será igual a el precio menos el precio por el enganche.



El interés será igual a la celda Z3 dividido 10000 ya que a la celda Z3 vincularemos el cuadro del enganche, que también crearemos mas adelante.

Y para la cuota utilizaremos la siguiente fórmula: =ABS(PAGO(B6/12,B5*12,B4)) ya que buscará el valor absoluto de el pago.



Luego procederemos a crear nuestros cuadros de control, que se encuentran en la pestaña PROGRAMADOR, y luego en insertar. Aquí generaremos un cuadro combinado.



Para lo que es el enganche generaremos una barra de desplazamiento.



Para lo que son los años generaremos un cuadro de control de número.



Y para el interés también generaremos una barra de desplazamiento.



Luego programaremos el cuadro de producto, y utilizaremos como rango de entrada la matriz "productos", y lo vincularemos con la celda Z1.



Luego programaremos la barra de desplazamiento de enganche, la cual vincularemos con la celda Z2 y su valor mínimo será de 5 y su aumento de 5 en 5, su valor máximo será de 15.



Luego programaremos el cuadro de control de número, colocándole como valor actual 5, como mínimo 1 como aumento 1 y como valor máximo 5, y lo vincularemos directamente con la celda B5.



Luego programaremos la barra de desplazamiento de el interés, colocándole como valor actual 100 como valor mínimo 100 como valor máximo 2000, como incremento 25 y lo vincularemos con la celda Z3.



Luego al enganche y al interés les aplicaremos un formato de número de "porcentaje".



Y a la celda de la cuota le reduciremos el número de decimales utilizando la opción aquí señalada.


DETALLE:
Bueno ahora que ya tenemos hecha nuestra cotización procederemos a realizar el detalle, el cual estará basado en algunas fórmulas las cuales nos ayudarán a hallar los valores requeridos.
Usaremos mucho también lo que es el valor absoluto de los valores y este lo hallaremos pulsando la tecla F4, también usaremos la fórmula para hallar el valor absoluto del pago la cual es la siguiente:
=ABS(PAGOINT())

Primero: procederemos a crear nuestra lista con los encabezados de los datos que deseamos hallar, esto lo haremos en la misma hoja de la cotización para que se nos facilite el manejo de los datos, solamente que ubicaremos el detalle dejando cierto número de celdas de espacio entre la cotización.


Luego aplicaremos la fórmula la cual solamente hallará el valor del pago mensual.



Luego escribiremos la fórmula del capital.

Luego escribiremos la fórmula para hallar el interés la cual mencione al comenzar a explicar la hoja del detalle.



Luego buscaremos la fórmula del acumulado.



Y luego hallaremos el saldo pendiente.



Luego como la fórmula del capital no variará en las siguientes celdas la podremos copiar, hacia abajo.



Escribiremos la fórmula de el interés será un poco similar a la de arriba solamente que aplicaremos el valor absoluto.



Escribiremos la fórmula del acumulado, esta variará un poco con la anterior.



Escribiremos la fórmula para el acumulado, también esta variará un poco con la anterior.



Luego de haber escrito las fórmulas, en las celdas siguientes podremos copiarlas hacia abajo con la opción de autorrellenado.





COMO PODREMOS VER TENEMOS TERMINADA LA PRIMERA PARTE DE NUESTRO DETALLE, AL FINAL EL ACUMULADO DEBERÁ DE QUEDAR EN 0.

Esta vez nos quedó así porque todavía no hemos hecho lo de los 5 años solamente lo de 12 meses, pero podremos ir hacia la cotización y reducirle el número de años a 1 y así si quedará en 0 el acumulado.


Luego de haber realizado todos los datos del primer año, podremos ingresar los del siguiente año solamente que haremos un condicionamiento para que cuando se seleccione un determinado número de años se muestre el detalle en relación con el tiempo de años que se esta seleccionando.
Esto lo haremos con el condicional SI=
La fórmula trabajará de la siguiente manera:
=SI(B5=1,"",SI(B5>1,13))
Si b5 (celda a la que esta vinculada el botón de los años) es igual a "1", entonces que no haga nada, sino si b5 es mayor que uno entonces que coloque 13.
Aplicaremos esta fórmula hasta llegar al número 24 ya que son los meses que suman 2 años.




Aplicaremos la misma fórmula que en la celda anterior solamente que aquí le aumentaremos el número de 13 a 14.



Utilizando nuestra lógica buscaremos la forma de adaptar la fórmula del número de cuota a esta celda siempre siguiendo en el orden en que se venía trabajando.



Continuaremos aplicando la fórmula de la misma manera hasta llegar al número 24.



Adaptaremos el condicionamiento a la otra fórmula que ya se venía trabajando antes.

Continuaremos aplicando la fórmula sucesivamente hacia abajo.



Adaptaremos el condicionamiento a la fórmula con la que se estaba trabajando anteriormente.



Aplicaremos la fórmula hacia abajo hasta llegar al número 24. (de número de cuota).



Adaptaremos nuevamente el condicionamiento a la fórmula con la que ya se estaba trabajando anteriormente.



Utilizaremos nuevamente la fórmula hasta llegar al número de cuota 24.

Adaptaremos el condicionamiento a la fórmula ya antes usada.



Reutilizaremos nuevamente la fórmula hasta llegar al número de cuota 24.



Ahora para comprobar que todo vaya bien. Iremos hacia la cotización para aumentar el número de años a 2 y la última celda del lado derecho nos tendrá que quedar en 0.


Ahora continuaremos para el tercer año que sería un aumento hasta 36 que serían los otros 12 meses extras a los 24 que ya se tenían.
La fórmula será la siguiente:
=SI(B5<=2,"",SI(B5>2,25))
Dirá que si b5 se menor o igual a 2 entonces que no realice ninguna acción sino, si b5 es mayor que 2 entonces que coloque 25.


Luego seguiremos el mismo paso que hicimos anteriormente y adaptaremos el condicionamiento que utilizamos para el número de cuota a la fórmula de las siguientes celdas.



Luego de haber llenado las otras fórmulas con los condicionamientos podremos aumentar el número de años para verificar que todo nos este quedando bien.



Luego nos tocará escribir las fórmulas del 4to año, en las cuales el número de cuotas ascenderá hasta 48.
La fórmula será la siguiente:
=SI(B5<=3,"",SI(B5>3,37))
Dirá que si b5 es menor o igual que 3 entonces nada, sino, si b5 es mayor que 3 entonces que coloque 37.


Luego seguiremos con el procedimiento de aplicar el condicionamiento a las otras celdas.



Luego aumentaremos el número de años a 4 para verificar que todo nos vaya quedando bien.



Luego encontraremos los otros valores que nos hacen falta los cuales serán del 5to año. por lo tanto el número de cuotas ascenderá a 60.
La fórmula será la siguiente:
=SI(B5<=4,"",SI(B5>4,49))
Dirá si b5 es menor o igual que 4 entonces nada, sino, si b5 es mayor que 4 entonces colocará 49.



Y así seguiremos utilizando la misma fórmula del condicionamiento para las demás celdas que nos hacen falta.



Luego podremos ir a aumentar el número de años, a 5 para verificar que todo nuestro ejercicio nos ah quedado bien.


POR ÚLTIMO SOLAMENTE DEBEREMOS GUARDAR NUESTRO TRABAJO COMO UN LIBRO HABILITADO PARA MACROS.



Luego deberemos crear un nuevo documento en el cual, crearemos nuestros formularios.
Con la ficha programador insertaremos un Botón el cual luego vincularemos con un formulario.

Le colocaremos nombre a nuestro botón.



Insertaremos un nuevo userform el cuál luego vincularemos con el botón anterior.


Lo dibujaremos con el tamaño que deseemos. Y también insertaremos una etiqueta para poner el título del formulario.



Le colocaremos el nombre a nuestro formulario.
Y también le quitaremos el fondo para que sea transparente, con la opción de Backstyle.



Luego le colocaremos un color de  fondo a nuestro formulario.



Insertaremos las otras etiquetas en las cuales escribiremos.



Insertaremos los cuadros de texto en los cuales se ingresarán los datos requeridos.



y por último ingresaremos un botón de comando.



Ingresaremos en el botón de comando haciendo doble click sobre el para programarlo.
Y usaremos el siguiente código.

Dim mensaje As String
If TextBox1 = "carlos" Then
    If TextBox2 = "1234" Then
    mensaje = MsgBox("Datos Correctos", vbOKOnly, "Bienvenido")
    UserForm1.Hide
    UserForm2.Show
    Else
    mensaje = MsgBox("la contraseña es incorrecta", vbOKOnly, "Bienvenido")
    TextBox1 = Empty
    TextBox2 = Empty
    TextBox1.SetFocus
    End If
    Else
    mensaje = MsgBox("el nombre de usuario es incorrecto", vbOKOnly, "Bienvenido")
    TextBox1 = Empty
    TextBox2 = Empty
    TextBox1.SetFocus
    End If
En el cuál estamos condicionando el valor de los datos que la persona deberá ingresar en los cuadros de texto que insertamos.
I dirá: 
que si el textbox1 es igual a "carlos" luego
si el textbox2 es igual a "1234" luego
que despliegue un mensaje en el que diga que los datos son correctos, que muestre el userform2 (que es el formulario que crearemos después), y que ya no muestre más el formulario actual.
Luego que si la contraseña es incorrecta, que muestre un mensaje en el cual diga que la contraseña es incorrecta, y que borre los datos de los 2 cuadros de texto, y que coloque el cursor en el primer cuadro de texto.
luego que si el usuario es incorrecto que muestre un mensaje en el que diga que el nombre de usuario es incorrecto, y que borre los datos de los 2 cuadros de texto, y que coloque el cursor en el primer cuadro de texto.




Luego insertaremos un nuevo userform en el cual ingresaremos las opciones de: facturar, cotizar, mostrar ayuda, Mostrar detalle, y cerrar el formulario.


Insertaremos 5 botones y luego les pondremos sus respectivos nombres.



Luego regresaremos a excel para grabar una nueva macro en la cual abriremos nuestra factura.



Iremos al botón de inicio y haremos click en abrir.



Buscaremos en donde se encuentra nuestro trabajo en donde está la factura, y luego lo habriremos.



Nos ubicaremos en la hoja en donde esta la factura, y luego ubicaremos nuestro cursor en la celda del nombre.



Luego detendremos o pararemos de grabar nuestra macro.



Luego nos ubicaremos en el módulo 1 debido a que ahí se encuentra la macro que acabamos de grabar. Luego la deberemos copiar.


Regresaremos a el Userform2 y haremos doble click sobre el botón de facturar para programarlo.



Pegaremos el código de la macro que grabamos y le agregaremos el siguiente código.
Userform2.hide
Esto será para que cierre el Userform que contiene todas las opciones.



Luego haremos lo mismo con el botón de cotizar.



Luego repetiremos nuevamente el mismo paso con el botón de Mostrar Detalle.



Luego para el botón de ayuda solamente deberemos crear otro formulario en el que colocaremos una etiqueta y ahí escribiremos una pequeña descripción del funcionamiento de nuestro sistema.


Le agregaremos un color de fondo, y también haremos las etiquetas transparentes.



Luego regresaremos a el Userform2 y haremos doble click sobre el botón de Mostrar Ayuda.
Para programarlo.



Luego volveremos a regresar a el Userform2 y le agregaremos una imagen de fondo para crear una mejor presentación. Solamente haremos click en picture y luego buscaremos la imagen que deseamos colocar.



Por ultimo haremos doble click sobre el botón cerrar y lo programaremos.



Regresaremos a Excel, y haremos click derecho sobre el botón.
y luego click sobre asignar macro.


Haremos click sobre nuevo, y nuevamente nos llevará hacia Visual Basic.

Luego programaremos el botón escribiendo el código Userform1.show para que nos muestre el primer formulario.


Luego para crear una mejor presentación le agregaremos un signo de asterisco a nuestro cuadro de texto que ira sobre la contraseña.



Y QUEDARÁ FINALIZADO NUESTRO FORMULARIO DE TRABAJO.