Está en la página 1de 9

IDAT MICROSOFT EXCEL

Especialista en Excel
Avanzado – Sesión 3

Nombre sesión
Diseño y programación de formularios VBA

Logro
Identificar los objetos de desarrollo y programa macros para ejecutar procesos optimizando el tiempo y
resultados.

Temas
1. Formularios VBA

FORMULARIOS VBA
Mediante el uso de formularios y de los numerosos controles y objetos que es posible agregarles,
puede mejorar de manera notable la entrada de datos en las hojas de cálculo, así como su aspecto.

También puede hacerlo usted mismo, con poco o ningún código de Microsoft Visual Basic para
Aplicaciones (VBA).

Controles ActiveX
Los controles ActiveX pueden usarse en formularios de hoja de cálculo, con o sin el uso de código VBA,
y en formularios del usuario de VBA. En general, use controles ActiveX cuando necesite requisitos de
diseño más flexibles que los proporcionados por los controles de formulario. Los controles ActiveX
tienen amplias propiedades que puede usar para personalizar su apariencia, comportamiento, fuentes
y demás características.

NOMBRE
DESCRIPCIÓN
BOTÓN
Casilla, activa o desactiva un valor que representa una selección inequívoca entre opuestos.

Cuadro de texto, permite en un cuadro rectangular, ver, escribir o editar texto o datos enlazados a una celda.

Botón de comando, ejecuta una macro que realiza una acción cuando un usuario hace clic en él.
Botón de opción, permite una única elección dentro de un conjunto limitado de opciones que se excluyen
mutuamente.

Cuadro de lista, muestra una lista de uno o más elementos de texto de entre los cuales puede elegir el usuario.

Cuadro combinado, combina un cuadro de texto con un cuadro de lista para crear un cuadro de lista desplegable
Botón de alternancia indica un estado, como Sí/No, o un modo, como Activado/Desactivado. El botón alterna entre
un estado habilitado o deshabilitado cuando se hace clic en él.
Control número, aumenta o disminuye un valor, como un incremento numérico, una hora o una fecha.
Barra de desplazamiento, desplaza por un intervalo de valores cuando el usuario hace clic en las flechas de
desplazamiento o arrastra el cuadro de desplazamiento.
Etiqueta, Identifica el propósito de una celda o un cuadro de texto, o muestra texto descriptivo (como títulos,
leyendas, imágenes) o breves instrucciones.
Control imagen, Inserta una imagen, como mapa de bits, JPEG o GIF.
Control marco, objeto rectangular con una etiqueta opcional que agrupa controles relacionados en una única unidad
visual.

Excel Avanzado 1
IDAT MICROSOFT EXCEL

Eventos sobre los objetos VBA


Un evento es una señal que comunica a una aplicación que ha sucedido algo importante. Por ejemplo,
cuando un usuario hace clic en un control en un formulario, el formulario puede provocar un
evento Click y llamar a un procedimiento que controla el evento.

Algunos eventos de VBA


• Click: ocurre cuando se presiona y suelta un botón del mouse sobre un objeto.
• DblClick: ocurre cuando se presiona y suelta dos veces un botón del mouse sobre un objeto.
• KeyPress: ocurre como cuando se presiona y suelta una tecla.
• MouseDown: ocurre cuando el usuario presiona un botón del mouse.
• MouseUp: se produce cuando el usuario suelta el botón del mouse.
• MouseMove: este evento ocurre mientras el usuario mueve o desplaza el puntero del mouse
sobre un objeto.

MÓDULOS
Sirve para crear procedimientos o funciones, que tiene un grupo de instrucciones y que realiza una
actividad concreta.

ESTRUCTURA DEL PROCEDIMIENTO


Un procedimiento está compuesto por un grupo de instrucciones que realizan una tarea especifica
Sintaxis:
Sub NombreProcedimiento()
Instrucciones
End Sub

NOMBRES DE VARIABLES
Los nombres de variable son espacios de memoria que el procedimiento o función de reserva para
guardar datos.
Sintaxis:
Dim Nombre_de_varaible As tipo

Tipo Tamaño Intervalo

String Longitud cadena Desde 1 a 65.400 aprox.


Integer 2 bytes -32.768 a 32.768
3.402823E38 a -1,401298 E-45 para valores negativos
Single 4 bytes 1,401298E-45 a 3.402823E38 para valores positivos.
1.79769313486232E308 a -4,94065645841247E-324 para valores negativos
Double 8 bytes 4,94065645841247E-324 a 1.79769313486232E308 para valores positivos.

Byte 1 byte 0 a 255


Boolean 2 bytes True o False
Date 8 bytes 1 enero de 100 a 31 diciembre 9999

Excel Avanzado 2
IDAT MICROSOFT EXCEL

Ejemplo 1: Diseñe un formulario que permita en una etiqueta mostrar el mensaje “Hola mundo...” y en
un botón de comando cerrar el formulario.

1. Seleccione la pestaña Programador/Visual Basic

2. Insertaremos un formulario VBA


a. Seleccione Insertar/ UserForm

b. Y obtenemos una venta similar a esta:

Formulario

Cuadro de herramientas

Excel Avanzado 3
IDAT MICROSOFT EXCEL

3. Insertamos un control de Etiqueta con las siguientes propiedades:


a. Caption : Hola Mundo
b. Font : Tamaño 20
c. TextAlign : 2-fmTextAlignCenter

4. Insertar control Botón de comando con las siguientes propiedades:


a. Caption : Finalizar
b. Font : Tamaño 14

Excel Avanzado 4
IDAT MICROSOFT EXCEL

5. Escribiremos la sentencia End en el botón de comando para finalizar la presentación del


formulario.
a. Hacer 2 veces clic en el botón de comando, se abrirá una ventana con el evento Clic que
indicará que se ejecute la sentencia “End” cuando se presione dicho botón.

Escriba End

6. Ejecute el formulario pulsando la tecla [F5]


a. A continuación, se mostrará el formulario según imagen

b. Para cerrar el formulario haga clic en FINALIZAR

Excel Avanzado 5
IDAT MICROSOFT EXCEL

Ejemplo 2: Diseñe un formulario que permita ingresar los datos de un Producto:


• Nombre producto
• Precio de costo
Con estos datos calcular la ganancia que se obtendrá por la venta del producto que
asciende al 20% de precio de costo, además deberá de obtener de precio de venta que
será la suma del precio de costo más la ganancia.
El formulario tendrá el siguiente diseño:

Cuadro de

Etiquetas

Etiqueta

Asigne los siguientes nombres a ciertos controle utilizando la propiedad Name:


• Cuadros de texto
o 1er Cuadro de texto Propiedad Name: TxtNombreProducto
o 2do Cuadro de texto Propiedad Name: TxtPrecioCosto
• Etiquetas (Color Verde)
o 1ra Etiqueta Propiedad Name: LblGanancia
o 2da Etiqueta Propiedad Name: LblPrecioVenta
• Botón de comando
o Propiedad Name: BtnCalcular

Escribiremos algunas instrucciones en Visual Basic dentro


del botón Calcular, de tal madera que permita leer los datos
ingresados (Cuadro de texto) procesarlos y mostrar
resultados (Ganancia y Precio Venta).
1. Haga doble clic en el botón calcular para abrir el
editor y escribir el siguiente código VBA.

Excel Avanzado 6
IDAT MICROSOFT EXCEL

2. Ejecute el formulario pulsando la tecla [F5]


3. Ingrese un nombre del producto (a criterio)
4. Ingrese el precio de costo (a criterio)
5. Clic en el botón Calcular
a. Obtendrá un resultado similar al de la imagen

Ejemplo 3: Diseñar un formulario para registrar a las personas que se inscriben en un curso, para ello deben de
ingresar el nombre, apellido, seleccionar el género, curso y turno. Cada registro ingresado por
formulario debe de pasar a una base de datos en una hoja Excel.

Diseño:

Excel Avanzado 7
IDAT MICROSOFT EXCEL

Nombres de controles:
• Objeto Formulario FrmAlumno
• Caja de texto de ingreso del Nombre TxtNombres
• Caja de texto de ingreso del Apellido TxtApellidos
• Botón de opción género Masculino OptMasculino
• Botón de opción género Femenino OptFemenino
• Cuadro combinado ingreso del Curso CmbCurso
• Cuadro combinado ingreso de Turno CmbTurno
• Cuadro de lista ingreso de Modalidad LstModalidad
• Botón registrar BtnRegistrar
• Botón Limpiar BtnLimpiar
• Botón Salir BtnSalir

Asignar nombres de rango a las listas de cursos, turno y modalidad

• Rango de celdas K3:K8 ListaCurso


• Rango de celdas L3:L5 ListaTurno
• Rango de celdas M3:M5 ListaModalidad

CODIGO VBA PARA EL OBJETO FORMULARIO METODO ACTIVATE

Private Sub UserForm_Activate()


‘Carga de elementos a los controles Cuadro combinado y de lista
Me.CmbCurso.RowSource = "ListaCurso"
Me.CmbTurno.RowSource = "ListaTurno"
Me.LstModalidad.RowSource = "ListaModalidad"
Me.OptMasculino.Value = True
End Sub

CODIGO BOTON REGISTRAR METODO CLICK

Private Sub BtnRegistrar_Click()


Dim Genero, Curso, Turno, Modalidad As String
Dim UltFila As Integer

If Me.OptMasculino.Value Then
Genero = "Masculino"
Else
Genero = "Femenino"
End If

Curso = Me.CmbCurso.Text
Turno = Me.CmbTurno.Text
Modalidad = Me.LstModalidad.Text

Excel Avanzado 8
IDAT MICROSOFT EXCEL

Rem obtiene la última fila disponible de la hoja


UltFila = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(UltFila, 1).Value = Me.TxtNombres.Text
Cells(UltFila, 2).Value = Me.TxtApellidos.Text
Cells(UltFila, 3).Value = Genero
Cells(UltFila, 4).Value = Curso
Cells(UltFila, 5).Value = Turno
Cells(UltFila, 6).Value = Modalidad

End Sub

CODIGO BOTON LIMPIAR METODO CLICK

Private Sub BtnLimpiar_Click()


Me.TxtNombres.Text = ""
Me.TxtApellidos.Text = ""
Me.OptMasculino.Value = True
Me.CmbCurso.Text = ""
Me.CmbTurno.Text = ""
Me.TxtNombres.SetFocus
End Sub

CODIGO BOTON SALIR METODO CLICK

Private Sub BtnSalir_Click()


End
End Sub

CODIGO PARA MACRO PARA ABIR FORMULARIO

Sub AbrirFormualrio()
FrmAlumno.Show
End Sub

Asignar esta macro al botón ABRIR FORMULARIO

Ejercicio 1: Elabore un formulario con los controles necesarios que permita ingresar el nombre de un alumno y sus
tres notas y calcular el promedio asumiendo los siguientes pesos para cada nota:
o Primera nota 30%
o Segunda nota 30%
o Tercera nota 40%

Ejercicio 2: Elabore un formulario con los controles necesarios que permita ingresar 2 números y se pueda calcular:
o La suma de los números
o La diferencia de los números
o El producto de los números
o La división de los números
El formulario deberá de contener un botón para cada operación

Excel Avanzado 9

También podría gustarte