Administración de ventas y formularios VBA
Formulario de gestión de ventas: descripción del ejemplo
Presentación del ejemplo
Somos la empresa BolEni, un distribuidor que vende bolsas deportivas en dos tallas, L y XL. La empresa comienza su actividad y desea disponer de un archivo simple para hacer un seguimiento de sus ventas y su stock.
La herramienta que va a configurar permitirá al vendedor de esta pequeña empresa crear, almacenar y descargar facturas.
La herramienta se presentará como un formulario para ser rellenado por el vendedor. Estará accesible desde un archivo Excel y el botón Ir a la herramienta de gestión de ventas, que se colocará en la hoja de apertura del libro.
He aquí la herramienta finalizada:
Presentación del archivo
Para realizar este ejemplo, utilizará el archivo de Excel Enunciado_3-ABC.xlsm. El formato XLSM significa que es un archivo de Excel que admite macros (lo que permite el uso de VBA, a menudo deshabilitado de forma predeterminada).
Este archivo contiene tres hojas de Excel (denominadas sheets en Visual Basic).
Hoja Inicio
Esta hoja está diseñada para contener solo el botón Ir a la herramienta de administración de ventas que facilita el acceso a la herramienta de gestión de ventas.
Hoja Productos
La hoja Productos enumera los productos vendidos por la empresa. Contiene tres columnas:
|
Columna A |
Columna B |
Columna C |
Fila 1 |
Nombre del producto |
Precio... |
Formulario de gestión de ventas: conceptos del curso
Este ejemplo contiene muchos conceptos nuevos relacionados con la programación en lenguaje Visual Basic. Se trata, por lo tanto, de algunos puntos de referencia útiles para poder comenzar con tranquilidad.
Concepto de programación
He aquí una descripción simplificada de algunos conceptos básicos de programación que permiten un mejor enfoque de los ejemplos propuestos.
Objeto y clase
Un objeto es una entidad informática; puede tener cualquier forma y cada objeto es único. Se caracteriza según su tipo.
La clase corresponde a la definición del objeto; servirá como lienzo para la creación de objetos nuevos. Esto significa que todos los objetos de la misma clase tendrán las mismas propiedades y se diferenciarán por los valores de sus propiedades.
Ejemplo:
Clase |
Objetos |
Cell (celda en una hoja de Excel) |
|
Sheet (hoja de libro) |
|
Textbox (cuadro de texto que se puede introducir en un formulario) |
|
Propiedades
Una propiedad es un atributo de una clase. Cuando se crea un objeto, tiene valores asignados a sus propiedades.
Ejemplo: la celda de una hoja tiene muchas propiedades, como el valor: Cells("A1").value
Métodos
Un método corresponde a una acción que puede realizar un objeto. Por ejemplo, el objeto hoja de cálculo (Sheets) proporciona un método Add para agregar una hoja.
Ejemplo: Sheets.Add
Colecciones
Una colección es una lista de objetos de la misma clase. Por ejemplo, la colección Sheets corresponde al conjunto de hojas. En Visual Basic, las colecciones son objetos completos, con sus propios métodos y propiedades.
Variables
Una variable es una entidad informática que almacena información dentro de la aplicación. Se declara de la siguiente manera:
-
Dim: permite definir la variable (Public para una variable pública);
-
Nombre_variable: da un nombre a la variable;
-
As TypeVariable: permite dar un tipo a la variable.
Ejemplo:
Dim MiVariable As String
Esto significa que la variable MiVariable se ha declarado como cadena de caracteres.
Las variables son las siguientes:
-
Públicas: son accesibles en toda la aplicación. Se declaran fuera de cualquier procedimiento de código.
-
Privadas: son accesibles solo en el procedimiento donde se declaran (en un procedimiento determinado).
Las variables se tipan principalmente por las tres razones siguientes:
-
Para tener métodos (ver con anterioridad) adaptados a la variable: una adición de cadenas corresponde a la concatenación, mientras que una adición de números corresponde a la suma de los valores:
Operaciones |
Valor de la variable cadena de caracteres |
Valor de la variable número entero |
MiVar = "A" + "E" |
"AE" |
Error |
MiVar = 1 + 2 |
"12" |
3 |
-
Para facilitar el desarrollo y el uso de la variable; se espera el contenido de la variable.
-
Cada tipo de variable tiene una cantidad asignada de memoria;...
Formulario de gestión de ventas: realización del ejemplo
En el ejemplo siguiente se creará la herramienta de administración de ventas. Las operaciones se describirán paso a paso.
En primer lugar, abra el archivo Enunciado_3-ABC.xlsm y, a continuación, acceda al editor de Visual Basic presionando las teclas Alt e F11 simultáneamente después de abrir el archivo.
Así, usted se sitúa en el editor de Visual Basic asociado al archivo Enunciado_3-ABC.xlsm.
Creación del formulario
Inserción del formulario
En este ejemplo, basta con un solo formulario de usuario que contenga todos los objetos utilizados para crear la factura.
Para crearlo en el editor de Visual Basic, haga clic en el menú Insertar y, a continuación, haga clic en UserForm.
Aparecen dos elementos en la pantalla:
-
El formulario UserForm1 (nombre predeterminado del primer formulario) donde será posible crear objetos de interacción con el usuario.
-
La ventana Cuadro de herramientas donde puede seleccionar los controles que desea colocar en el formulario.
Para ver o editar las propiedades del formulario UserForm1, seleccione el formulario, haga clic con el botón derecho del ratón en él y, a continuación, haga clic en Propiedades para mostrar la ventana con este nombre.
Esta acción también es posible usando la tecla F4 o el menú Ver y luego Ventana Propiedades.
Modificación de las propiedades
Aquí puede ver los nombres de las propiedades que vamos a modificar. Se trata principalmente de las propiedades de visualización: tamaño, texto de visualización, fondo de pantalla y nombre del objeto.
Nombre de la propiedad |
Explicación |
Otros objetos |
Valor de la propiedad |
Name |
Nombre único del objeto |
Común a todos los objetos |
FormEjemplo |
Caption |
Valor que se muestra del objeto; para un formulario, se trata del texto en la parte superior. |
Dos tipos de nombres para esta propiedad:
|
Software de gestión de ventas |
Height |
Altura (tamaño) |
Común a todos los objetos |
400 (píxeles) |
Width |
Ancho (tamaño) |
Común a todos los objetos |
220 (píxeles) |
BackColor |
Color de fondo: en la paleta, elija un color de fondo para el objeto. |
Común a todos los objetos |
&H00FFFFFF& |
Modifique los valores asignados a las propiedades para obtener el siguiente resultado en tiempo de ejecución:
Crear controles en el formulario
¿Qué controles crear?
A partir del modelo proporcionado como punto de partida, hay que identificar los objetos necesarios que hay que introducir en el formulario denominado FormEjemplo.
-
1 - Controles Label
-
2 - Controles CommandButton
-
3 - Control TextBox
-
4 - Control ComboBox
-
5 - Control CheckBox
-
6 - Control ListBox
Para crear un objeto, selecciónelo en la ventana Cuadro de herramientas, arrástrelo y suéltelo en el formulario (en este caso, FormEjemplo).
Si no aparece el cuadro de herramientas, seleccione un formulario, haga clic en el menú Ver y, a continuación, haga clic en Cuadro de herramientas.
La posición del objeto puede ser determinada por el usuario...
Protección de un libro: descripción del ejemplo
Presentación del ejemplo
La seguridad de los datos es un problema generalizado hoy en día, sobre todo la seguridad de los archivos. Estos ahora resultan muy accesibles ya que, por lo común, se almacenan en la web y se comparten fácilmente. Muchos usuarios se enfrentan a este problema y desean tener más protección en sus archivos, sobre todo para evitar revelar información confidencial.
En la actualidad, disponemos de muchas soluciones de protección de archivos diseñadas específicamente para el cifrado de datos.
De hecho, existen diversas funciones que evitan exponer el código a todos los destinatarios, limitan el uso compartido de hojas en el libro o impiden aplicar cambios en toda una hoja o solo en ciertas celdas.
Hay que reconocer que Excel no es la herramienta que ofrece más garantías en términos de seguridad, pero, con las siguientes opciones, al menos es posible desalentar a muchas de las personas que tengan la aviesa intención de atacar los datos que usted ha protegido.
El objetivo de este ejemplo es dotar de mayor seguridad al código, la hoja y los datos.
Presentación del archivo
El archivo Enunciado_3-DEF.xlsm es la continuación del ejemplo 3-ABC, las pestañas son las mismas. Por lo tanto, no hay elementos nuevos que presentar.
Funciones
Las funciones que se desarrollarán...
Protección de un libro: conceptos del curso
Mostrar/ocultar una hoja
Para ocultar una hoja, haga clic con el botón derecho del ratón en la pestaña correspondiente a la hoja que quiere ocultar y, a continuación, seleccione Ocultar:
Para ver una hoja, haga clic con el botón derecho en la pestaña de una hoja que no esté ocultada y, a continuación, haga clic en Mostrar:
Aparece la ventana Mostrar que le permite elegir qué hojas mostrar.
Termine haciendo clic en Aceptar.
Proteger la estructura
Proteger la estructura de un libro ayuda a evitar que se agreguen, editen y eliminen hojas dentro de él.
La función se encuentra en la pestaña Revisar, botón Proteger libro:
Aparecerá la ventana de protección del libro, que le permite seleccionar la protección de la estructura y asociar una contraseña con ella.
La contraseña es opcional, es decir: no tiene que introducirla para configurar la protección de la estructura y no se le pedirá una contraseña para eliminar la protección. Por otro lado, si introduce una contraseña en la ventana anterior, se mostrará otra ventana donde se le pedirá que confirme la contraseña que acaba de introducir.
Después de hacer clic en Aceptar ya no podrá realizar más cambios en la estructura. Como puede ver haciendo un clic derecho en la pestaña...
Protección de un libro: creación del ejemplo
Primero, abra el archivo Enunciado_3-DEFv2.xlsm.
Este archivo contiene un código ligeramente diferente al del archivo Enunciado_3-DEF para permitir que se realicen las siguientes operaciones sin bloquear la herramienta de administración de ventas, aunque el libro va a estar protegido con contraseña.
Ocultar las hojas Facturas y Productos
Para ocultar las hojas Facturas y Productos, simplemente seleccione las dos hojas y luego ocúltelas usando el menú contextual de la pestaña de la hoja.
Haga clic en la hoja Facturas.
Pulse la tecla Ctrl y haga clic en la pestaña de la hoja Productos.
Haga clic con el botón derecho en la ficha de la hoja Productos y, a continuación, haga clic en Ocultar.
Como puede ver, solo es posible acceder a la hoja Inicio:
Proteger la estructura del libro
La protección de la estructura del libro evitará que los usuarios del archivo vean las hojas ocultas, agreguen nuevas hojas y cambien el nombre de la hoja Inicio.
En la pestaña Revisar, haga clic en el botón Proteger libro.
En la ventana de protección del libro, escriba la contraseña eni y haga clic en Aceptar.
Confirme la contraseña en la pantalla siguiente introduciendo eni de nuevo.
Ahora su libro está protegido y, sin conocer la contraseña, será imposible que un usuario pueda cambiar su estructura.
Sin embargo, como resultado de estas operaciones, el botón Ir a la herramienta de gestión de ventas ya no está operativo.
Mostrar el stock a través de un formulario
Esta función permite mostrar una ventana emergente con el stock actual de cada producto después de que el usuario haya introducido una contraseña. Al hacer clic en un botón de la hoja Inicio, se mostrará la siguiente ventana:
En el editor de Visual Basic, agregue una ventana haciendo clic con el botón derecho en el proyecto, luego clic en Insertar y, a continuación, en UserForm.
El formulario aparece en la pantalla.
Haga clic con el botón derecho en él y luego clic en Propiedades para editar las propiedades del formulario.
Cambie la propiedad Name a MostrarStock y la propiedad Caption a Mostrar stock.
En el formulario, agregue tres controles. De arriba abajo: una Etiqueta (Label), un Cuadro de texto (TextBox) donde se puede escribir y un Botón de comando (CommandButton) para que la ventana tenga este aspecto:
Edite las propiedades de los objetos individuales.
Para la Etiqueta:
Propiedad |
Definición de la propiedad |
Valor |
Caption |
Aspecto visual de la etiqueta |
Introduzca la contraseña para ver el stock |
Para el Cuadro de texto:
Propiedad |
Definición de la propiedad |
Valor |
Text |
Aspecto visual del cuadro de texto |
Vacío |
PasswordChar |
Esta propiedad permite tener un carácter distinto del especificado por el usuario en el cuadro de texto. Aquí cada carácter introducido se reemplazará por una estrella |
* |
Name |
Nombre del objeto |
Contrasena |
Para el botón de comando:
Propiedad |
Definición de la propiedad |
Valor |
Caption |
Aspecto visual del botón de comando |
Validar |
Name |
Nombre del objeto |
Valid |
El resultado es el siguiente:
Haga doble clic en el botón Valid para acceder...