¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Aprenda el lenguaje VBA
  3. Administración de ventas y formularios VBA
Extrait - Aprenda el lenguaje VBA y conviértase en un experto en Excel (versiones 2019, 2021 y Microsoft 365)
Extractos del libro
Aprenda el lenguaje VBA y conviértase en un experto en Excel (versiones 2019, 2021 y Microsoft 365) Volver a la página de compra del libro

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:

images/VBA_135.png

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)

  • Cells("A1"): Celda A1 de la hoja actual;

  • Cells("C4"): Celda C4 de la hoja actual.

Sheet (hoja de libro)

  • Sheets(0): primera hoja del libro actual;

  • Sheets(1): segunda hoja del libro actual.

Textbox (cuadro de texto que se puede introducir en un formulario)

  • Textbox1: cuadro de texto que se puede introducir denominado Textbox1 por el usuario;

  • Textbox2: cuadro de texto que se puede introducir denominado Textbox2 por el usuario.

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.

images/VBA_121.png

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.

images/VBA_122.png

 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.

images/VBA_123.png

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:

  • Caption si el usuario no puede cambiar directamente el valor para mostrar.

  • Texto si el usuario puede editar directamente el valor para mostrar (ejemplo: cuadro de introducción de texto)

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:

images/VBA_124.png

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.

images/VBA_136.png
  • 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:

images/VBA_137.png

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:

images/VBA_138.png

Aparece la ventana Mostrar que le permite elegir qué hojas mostrar.

images/VBA_139.png

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:

images/VBA_140.png

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.

images/VBA_141.png

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.

images/VBA_156.png

Como puede ver, solo es posible acceder a la hoja Inicio:

images/VBA_157.png

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.

images/VBA_158.png

 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:

images/VBA_166.png

 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.

images/VBA_159.png

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.

images/VBA_160.png

 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:

images/VBA_161.png

 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:

images/VBA_162.png

 Haga doble clic en el botón Valid para acceder...