1. CONTROLES ACTIVEX EXCEL IV PERIODO
Los controles ActiveX permiten diseñar formularios a través de cada uno de sus botones y a su vez generar código VBA
para la creación de bases de datos.
1. Activar la barra de programador
Ingresar a la barra de opciones
2. activar la opción Programador
3. Aceptar
II PASO
Crear un formulario para ingresar datos
Seleccione la ventana programador E inserte los cuadros correspondientes en el botón insertar Seleccione los botones
ActiveX
Se desea diseñar un formulario que permita almacenar la información de estudiantes de 11 grado para hacer un
pequeño análisis de que ingeniería o en su defecto otro pregrado desean realizar.
El formulario se compone de:
Cuadros de texto: label Permiten fijar texto sin que este
pueda ser modificado
Listas desplegable: listas que permiten desplegar y
seleccionar un ítem de esta
Cajas de texto: permiten que el usuario del formulario
digite texto en ella.
Cuadro de selección: check box permite seleccionar un
ítem
Botón de selección: check button: permite seleccionar un
ítem de botón
Botón de comando. Command button: botón para
ejecutar instrucciones.
Control de número. Permite crear una lista de números definiendo un
rango máximo y un mínimo.
2. III PASO CREAR LAS LISTAS PARA LOS CUADROS DE SELECCIÓN
En la hoja dos se crean las listas de selección. La primera lista corresponde a las ingenierías existentes y se llamara
pregrados, se da click derecho al cuadro combinado o lista y se busca la opción propiedades, allí selecciona la opción
listfillrange (rango de lista) y escribe el nombre de la lista en este primer caso Pregrados,
igual se hace con los meses.
Para almacenar el día debe crear una caja de texto y un control de número.
Se debe buscar en la ventana de propiedades de la caja de texto la propiedad name y copiar el
nombre que allí aparece
Luego de conocer el nombre del cuadro de texto se procede a dar doble click sobre el control de
numero, para que se ejecute el editor de visual basic.
Y se copia el siguiente codigo donde aparece el cursor.
1
2
34
5
6
1
11
222
2
2
2
3
3
4 5 5
6
1. CUADRO COMBINADO O LISTA
2. LABEL O CUADRO PARA FIJAR
TEXTO
3. CUADRO PARA INSERTAR TEXTO
4. CUADRO DE SELECCIÓN
5. BOTON DE SELECCIÓN
6. BOTON
7. CONTROL DE NÚMERO
7
7
La siguiente corresponde a
los meses del año
3. TextBox3.Text = SpinButton1.Value
En las propiedades del control de numero debe seleccionar la propiedad min en 1 y max en 31.
Para ejecutar el ejercicio no debe estar seleccionado el boton modo de diseño de la barra programador.
Para evitar que al momento de seleccionar un ítem de nacionalidad y posterior un ítem de pasatiempo se desactive el
ítem anterior, se debe crear los grupos de nombre. Seleccionar manteniendo presionada la tecla “shift” los ítems de la
sección nacionalidad y en la ventana de propiedades de Group name escribir NACIONALIDAD. Realizar el mismo
procedimiento con los ítems de pasatiempos, escribiendo PASATIEMPOS en la propiedad Group name.
Ya creado el formulario con los controles, ahora se necesita crear una macro que permita generar una base de datos con
las referencias que se van capturando en cada uno de los campos, por lo tanto se debe crear una hoja llamada base y en
ella se colocan los siguientes encabezados.
4. Cuando ya esté diligenciado el formulario la macro se encargara de pasar los datos a la hoja base, quedando cada uno
en su respectiva columna. Este evento se debe realizar desde el botón “REGISTRAR”, que ya se ha creado en el
formulario.
Para crear el código de visual basic en este botón, de doble click sobre el mismo para que se abra el editor de visual y a
continuación digite las siguientes sentencias:
Private Sub CommandButton1_Click()
Rem fase1. ubicarse en la ultima fila vacia de la tabla
Sheets("BASE").Select
Application.Goto reference:="R65000c1"
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("a1").Select
Rem fase2. pasar los datos del formulario en hojas
ActiveCell = ComboBox1.Value
ActiveCell.Offset(0, 1) = TextBox1
ActiveCell.Offset(0, 2) = TextBox2
ActiveCell.Offset(0, 3) = ComboBox1.Value
ActiveCell.Offset(0, 4) = TextBox3
If CheckBox1 = True Then
ActiveCell.Offset(o, 5) = "derecho"
End If
If CheckBox2 = True Then
ActiveCell.Offset(o, 6) = "sicologia"
End If
If CheckBox3 = True Then
ActiveCell.Offset(o, 7) = "enfermeria"
End If
If OptionButton1 = True Then
ActiveCell.Offset(o, 8) = "colombiano"
End If
If OptionButton2 = True Then
ActiveCell.Offset(o, 8) = "mexicano"
End If
If OptionButton3 = True Then
ActiveCell.Offset(o, 8) = "venezolano"
End If
If OptionButton4 = True Then
ActiveCell.Offset(o, 9) = "leer"
End If
If OptionButton5 = True Then
ActiveCell.Offset(o, 9) = "deporte"
End If
If OptionButton6 = True Then
ActiveCell.Offset(o, 9) = "musica"
End If
5. Rem fase3. rutina que borra los datos del formulario
Sheets("FORMULARIO").Select
ComboBox1 = Empty
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
textbox4 = Empty
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
OptionButton1 = False
OptionButton2 = False
OptionButton3 = False
OptionButton4 = False
OptionButton5 = False
OptionButton6 = False
End Sub
EXPLICACION DE LAS SENTENCIAS( NO DIGITAR)
FASE 1
UBICARSE EN LA ULTIMA FILA VACIA DE LA TABLA
La primera fase se encarga de ubicarse en la hoja base, con el fin de ubicarse en la última celda vacía para poder
registrar los datos
Sheets(“BASE”).Select
Comando utilizado para ubicarse en determinada hoja
Application.Goto reference:="R65000c1"
Comando utilizado para ubicarse en la celda “a65000”
Selection.End(xlUp).Select
Comando que hace referencia a “control”+ “flecha arriba”, que se encarga de ubicarse en la primera celda en la
dirección de abajo hacia arriba, que tenga datos.
ActiveCell.Offset(1, 0).Range("a1").Select
Comando que permite bajar una fila en la misma columna a partir de la celda activa
FASE 2
PASAR LOS DATOS DEL FORMULARIO A LA HOJA
La segunda fase de código consiste en empezar a pasar los datos capturados en el formulario a la hoja base
ActiveCell = ComboBox1.Value
Significa que sobre la celda que se encuentra posicionada, se debe colocar el valor que se encuentra en el combobox1,
es decir el pregrado al cual aspira
ActiveCell.Offset(0, 1) = TextBox1
Significa que se debe mover cero filas y una columna a la derecha en forma relativa, es decir ubicarse en la columna B de
la misma fila y allí tomar el dato de la caja de texto 1
Así con las siguientes líneas de código
If CheckBox1 = True Then
ActiveCell.Offset(o, 5) = "derecho"
End If
Significa que si la casilla de verificación 1 esta habilitada, entonces se debe mover cero filas y 5 columnas y allí colocar la
palabra derecho y si no esta habilitada no colocara nada
Asi con las dos opciones siguientes
If OptionButton1 = True Then
ActiveCell.Offset(o, 8) = "colombiano"
End If
Si el botón de opción 1, se encuentra habilitada(true) se debe mover cero filas y 8 columnas y allí escribir colombiano.
Asi con las dos opciones siguientes.
If OptionButton4 = True Then
ActiveCell.Offset(o, 9) = "leer"
End If
Si el botón de opción 4 esta habilitado se debe mover cero filas y nueve columnas, allí escribir leer y si no está habilitado
no se mueve nada.
Así con las dos opciones siguientes.
FASE 3
RUTINA QUE SE ENCARGA DE BORRAR LOS DATOS DEL FORMULARIO.
Solamente falta regresar al formulario y borrar los datos digitados por el usuario y dejarlo limpio. La sentencia EMPTY
deja en blanco los cuadros de texto y combobox
Para que los check box y optionbutton queden en blanco sin ninguna selección utilizaremos la propiedad false de tal
manera que queden deshabilitados.