0% encontró este documento útil (0 votos)
68 vistas30 páginas

¿Qué Temas Contiene ?: Mixto

Este documento contiene información sobre el Módulo II de Visual Basic para Aplicaciones. Cubre 5 temas: 1) El editor de VBA, 2) Objetos, propiedades y métodos, 3) Manejo de eventos, 4) Manejo de módulos de programación, 5) Manejo de módulos de programación. También incluye información de contacto para obtener más detalles sobre el curso.

Cargado por

Wambi flash
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas30 páginas

¿Qué Temas Contiene ?: Mixto

Este documento contiene información sobre el Módulo II de Visual Basic para Aplicaciones. Cubre 5 temas: 1) El editor de VBA, 2) Objetos, propiedades y métodos, 3) Manejo de eventos, 4) Manejo de módulos de programación, 5) Manejo de módulos de programación. También incluye información de contacto para obtener más detalles sobre el curso.

Cargado por

Wambi flash
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 30

MÓDULO II: VISUAL

BASIC FOR
Mixto APPLICATION.

¿ Qué temas

contiene ?

TEMA 1: El editor de VBA


TEMA 2: Objetos,
propiedades y métodos.

TEMA 3: Manejo de eventos.


TEMA 4: Manejo de módulos
de programación.

TEMA 5: Manejo de módulos


de programación.

Visita nuestra página web en

www.infopuc.pucp.edu.pe para mas información

sobre nuestros otros cursos.

Si tienes alguna consulta sobre el contenido

del curso escríbeme a [email protected]


Tema 1: El editor de

VBA

Aprende a programar de manera divertida

¿Por qué debo "Todo profesional debe aprender a

aprender a programar porque programar te ayuda

programar? a pensar y a construir formas de

desarrollo adecuado. Siempre

recomiendo VBA como primer paso

debido a su sencillez".

Mantente en contacto si tienes alguna duda [email protected]


1. El editor de VBA. Excel Avanzado I

El editor de VBA (VIsual Basic for Application) es sin lugar a duda la herramienta más poderosa de

Excel y esto debido a que nos brinda la posiblidad de automatizar procesos y crear proyectos que

puedan resumir y ejecutar peticiones a partir de un lenguaje de programación.

VBA es un lenguaje orientado en manipular

procedimientos y eventos y tiene la capacidad

de interactuar con los objetos en Excel,

es decir, en este caso, la aplicación

de Excel tendrá distintos objetos

con los cuales podremos trabajar

usando VBA.

Las partes mas importantes del editor de VBA son las siguientes:

1. EDITOR DE CÓDIGO VBA


2. EXPLORADOR DE PROYECTOS

3. VENTANA DE PROPIEDADES

4. BARRA DE HERRAMIENTAS

5. BARRA DE EVENTOS
Excel Avanzado I

BARRA DE EVENTOS 05

Contiene la relación de los distintos eventos o acciones disponibles para cada objeto. Este tema

también será dearrollado mas adelante.

¿ Como comenzar a

programar ?

Para empezar a codificar nuestro primer script en VBA creamos un módulo en "Insertar" > "Módulo"

en la barra de herramientas. Iniciamos una sentencia básica usando las palabras reservadas "Sub"

seguido del nombre que le pongamos a nuestro programa.

Sub script1 ()
Application.ThisWorkbook.Sheets(“Hoja”).Range(“A1”).Select 'Selecciona rango "A1" del libro

'activo

End Sub

El siguiente Script al cual llamaremos procedimiento a partir de ahora, tiene una sintaxis

establecida, inicia siempre con "sub" seguido de un nombre definido por el usuario y termina en

"End Sub". Lo que va dentro de estos dos textos son las instrucciones del desarrollador.

worksheets es igual a Worksheets


VBA no es Case Sensitive, a diferencia de otros
workBooks es igual a WoRKbookS
lenguajes de programación, no distingue de
SheeTs es igual a Sheets
mayusculas ni minúsculas por lo que
WorBooks no es igual a WorkBooKS
escribir alguna propiedad, método u

objeto en mayúscula o minúscula es


Recuerda: VBA no es case sensitive mas indiferente al momento de ejecutar
no corrige errores de codificación o nuestro script.
caracteres omitidos.

Comentarios en VBA
03
Seguramente te haz preguntado qué imporntacia tienen las letras en color verde y por qué siempre

tienen un apóstrofe (') antes de iniciarlo. Estos son lo comentarios y es una buena práctica

colocarlos para poder documentar nuestros trabajos, sin embargo su existencia no interfiere con la

ejecución de sus scripts.


Excel Avanzado I

¿ Qué es asignación?

La asignación es un concepto muy común dentro de los lenguajes de programación, no sólo en VBA.

Muchas veces este concepto suele confundirse con otro concepto, "igualdad"

"Lo que está a la derecha se asigna a lo que está

a la izquierda"

Observe el siguiente script y pregúntese, ¿la primera sentencia es igual a la segunda?

Sub script1 ()
x = ThisWorkbook.Sheets(“Hoja1”).Range(“A1”).Select 'Asigno a "x" el contenido del rango "A1"

ThisWorkbook.Sheets(“Hoja1”).Range(“A1”).Select = x 'Asigno al contenido del rango "A1" el

'valor de "x"

End Sub

¿ Cómo ejecuto mi

script?

Existen dos maneras de ejecutar un script, una de ellas es por medio de los comando de ejecución y

el otro es por medio de referencias a través de la hoja de cálculo.

Comando de ejecución 01

Haciendo foco en el procedimiento y presionando "F5" o clic en el

triangulo verde ejecutarás el script, del 03mimo modo para pausar o

detener.

La depuración es un proceso importante para la detección de

errores o para la obtención de valores previos paso a paso, para

ello puedes activar la depuración presionando "F8" o directamente

desde la barra de herramientas. 0 Es necesario hacer foco al

procedimiento previamente.
Excel Avanzado I

Referencia por hoja de cálculo 02

Para ejecutar la macros desde Excel nos dirigimos hacia la barra de herramientas > Macros y

seleccionar el que tenga el nombre de nuestro procedimiento, en este caso "Script1".

Tambien puedes asignar la ejecución de una

macro a un botón. Para ello creamos una

autoforma > Clic derecho > Asignar Macro" >

Seleccionamos "Script1". De esta

manera cada vez que hagamos

clic en el botón se ejecutará la

macro.

¿ Cómo guardo mi

script?
03

El código se guarda en el mismo archivo de Excel, sin embargo para ello es sumamente importate

guardarlo como libro habilitado para macro "(.xlsm)" ya que de no hacerlo toda nuestra información

quedará perdida.

0
Tema 2: Objetos,

propiedades y métodos.

Conoce la forma en la que trabaja VBA

¿Por qué estos "El editor de VBA trabaja con un lenguaje de

conceptos son programación que está basado en el manejo de

importantes? objetos, proiedades y métodos. Verás

que estos conceptos están relacionados

uno con otros".

Mantente en contacto si tienes alguna duda [email protected]


2. Objetos, propiedades y métodos. Excel Avanzado I

Se puede definir a los objetos como elementos dentro de Excel. Una celda, una hoja, un libro, una

tabla dinámica, un formulario, etc. son ejemplos de objetos de Excel.

Todo objeto tiene propiedades y métodos, se puede definir a una propiedad como el conjunto de

características de los objetos mientras que los métodos son las acciones que el objeto podría

realizar.

Sub Script1()
Application.ThisWorkbook.Sheets(“Hoja”).Range(“A1”).Select

End Sub

Observe el siguiente script e identifique el objeto, la propiedad y el método.

Application. Este objeto hacer referencia a la aplicación de Excel.


Workbooks. La colección de libros o archivos hacer referencia a cada uno de los archivos que

estén abiertos en un cierto momento en Excel. ThisWorkbook hace referencia al archivo que

contiene las macros en ejecución: ActiveWorkbook hace referencia al archivo activo, cuando se

tienen más de uno abierto.

Worksheets o Sheets. Esta colección aloja a todas las hojas que se encuentren de un archivo.
Si hacemos referencia a la hoja activa usamos ActiveSheet.

Range o Cell. Un rango hace referencia a varias celdas. Si hacemos referencia a la celda

activa usamos ActiveCell.

Una buena analogía para entender los objetos,

propiedades y métods es mediante el siguiente ejemplo


Excel Avanzado I

Objetos 01

Generalmente están agrupados en colecciones y estas colecciones pertenecen o comparten una

misma categoría. Las colecciones mas comunes son: colecciones de archivos, hojas, gráficos, tablas

dinámicas, formularios, segmentaciones, etc.

La sintaxis para llamar a una colección de archivos se realiza de la siguiente manera:

Sub Script2()
Workbooks(1).Activate 'Libro 1 activado

Workbooks("TrabajoInfoPUC.xlsm").Activate 'Libro de nombre "TrabajoInfoPUC.xlsm" activado

End sub
Si ahora queremos usar la coleeción Worksheets o Sheets sería de la siguiente manera:

Sub Script2()
Worksheets(1).Select 'Primera hoja activada

Worksheets("Hoja1").Select 'Hoja de nombre "Hoja1" activada

End sub

Y por úlitmo si quiero llamar a celdas sería:

Sub Script3()
ActiveCell.Select 'Seleccionar celda activa

Range("A1").Select 'Seleccionar celda "A1"

Cells(1, "A").Select 'Seleccionar celda "A1"

End Sub

Muchas veces no es necesario escribir la colección de objetos ya que se puede

sobreentender que se está trabajando en el objeto actual, sin embargo ¿Qué pasaría si

tenemos mas de un objeto abierto en simultáneo?, pues tu programa puede

ejecutarse no necesariamente como uno quisiera, por eso es oportuno, en lo

posible, especificar el objeto.

Observe los siguientes scripts:

Sub Script4()
Workbooks("Tarea1.xlsm").ActiveSheet.Range("A1").Select 'Seleccionar celda "A1" de la

'hoja activa del libro Tarea1

Range("A1").Select 'Seleccionar celda "A1" del libro activo de la hoja activa

End sub
Ambos scripts hacen referencia a la misma celda sin embargo si ahora el foco está en otro libro

abierto la celda activa será la de ese libro. Una instrucción es más específica que la otra
Excel Avanzado I

Propiedades 02

Como ya se mencionó, son propiedades que se encargarán de describir a una colección de

objetos.

Por ejemplo, si deseamos encontrar el nombre de un objeto "Sheet" se usará la propiedad "name"

de la siguiente manera:

Sub Script5()
nombre = Sheets(1).Name 'Nombre de la primera hoja guardada en variable "nombre"

a = Sheets(15).Name 'Nombre de la hoja 15 guardada en la variable "a"

End Sub

Del mismo modo podemos cambiar el nombre de una hoja usando la misma propiedad de la

siguiente manera:

'Sub Script6()
Worksheets(2).Name = "Hoja 1" 'Colocamos "Hoja 1" como nombre de la segunda hoja

Sheets(1).Name = "Tablas" 'Colocamos "Tablas" como nombre de la primera hoja

End Sub

Existen tambien propiedades de sólo lectura las cuáles pueden ser asignadas a variables como por

ejemplo: ".count"

Sub Script7()
Range("A1:B3").Columns.Count 'Obtiene el numero de columnas del rango

Range("A1:B3").Rows.Count 'Obtiene el número de filas del rango

End Sub

Si una persona fuera un objeto de Excel sus propiedades serían el color de sus ojos, el

color de su cabello, su estatura, su peso. De la misma manera, un objeto de Excel tiene

propiedades por ejemplos, una celda (Range) tiene las propiedades

valor (Value) y dirección (Address) entre muchas otras. Estas propiedades

describen mejor al objeto.

Para ver una propiedad únicamente seleccione de la lista desplegable después de colocar el punto

despues del objeto.


Excel Avanzado I

Métodos 03

Los métodos son acciones que los objetos pueden realizar. Para llamar a un método primero

específicamos el nombre de dicho objeto y luego el nombre de la acción

Por ejemplo, si deseamos agregar un comentario a una celda podemos usar el método

".AddComment" de la siguiente manera:

Sub Script8()
Cells(1,"A").AddComment("InfoPUC") 'Agrega el comentario "Hola Mundo"en "A1"

Range("A1").AddComment 'Agrega un comentario vacío en el Rango A1

End Sub

Si ahora queremos, por ejemplo, guardar nuestro libro podemos usar el método "Save" de la

siguiente manera:

'Sub Script9()
Workbooks("Tarea.xlsm").Save 'Guardamos el libro "Tarea.xlsm"

ThisWorkbook.Save 'Guardamos el libro activo

End Sub

Como pudimos notar, los métodos, algunas veces requieren de argumentos para poder funcionar de

manera óptimo, como por ejemplo el método "SaveAs":

Sub Script10()
ThisWorkbook.SaveAs Filename:= "InfoPUC.xlsm" 'Guardamos el libro activo como InfoPUC

ThisWorkbook.SaveAs Filename:= "Tarea.xlsx" 'Guarda el lirbo como extensión ".xlsx"

End Sub

Siguiendo con el ejemplo de una persona, si fuera un objeto de Excel sus métodos serían

correr, caminar, hablar, dormir. Los métodos son las actividades o acciones que el objeto

puede realizar. Los objetos de Excel se comportan de la misma manera que

el ejemplo de una persona. Una celda (Range) tiene los métodos

activar (Activate), calcular (Calculate), borrar (Clear) entre muchos más

Para ver un método al igual que las propiedades seleccione de la lista desplegable después de

colocar el punto despues del objeto.


Excel Avanzado I

A continuación observe la siguiente tabla con los principales y más cómunes objetos, propiedades y

métodos.
Tema 3: Manejo de

eventos

UNA EJECUCIÓN AUTOMÁTICA ANTE CIERTAS

CONDICIONES

¿Para que me sirven "Los eventos o tambien llamados disparadores son

los eventos? procedimientos que se ejecutan antes ciertos

cambios en los objetos de Excel.

Manejarlos a la perfeccion si lugar a

duda ayudarán en nuesrtos diseños".

Mantente en contacto si tienes alguna duda [email protected]


3. Manejo de eventos. Excel Avanzado I

Un evento no es nada más que un script que actúa cuando el usuario ha introducido ciertos

parámetros que el sistema reconoce y normalmente están relacionados con los objetos de Excel

(celdas, rangos, hojas, libros, etc).

Un ejemplo práctico sobre un evento es el llamado "Workbook_Open" el cual quiere decir que se

ejecute al momento de abrir el libro. Obeserva el siguiente script

'Script
Private Sub WorkBook_Open()
Msgbox("Hola InfoPUC") 'Envía un mensaje al abrir el libro

End Sub

Estos eventos se generan automáticamente al dirigirnos a la barra de eventos del editor de VBA.

Para ello nos dirigimos al objeto "ThisWorkbook" de la ventanas de proyectos

Hacemos doble clic en el objeto, en este caso

"ThisWorkbook" y se abrira un espacio para codificar.

Nos drijimos a la barra de eventos y seleccionamos

WorkBook. En donde al hacer clic se creará el siguiente

script, lo cual indica que todas las intrucciones dentro de

este procedimiento se ejecutarán al abrir el libro.

'Script
Private Sub WorkBook_Open()

End Sub

Sin embargo, esto no es el único evento para este objeto, si hacemos clic al siguiente cuadro

observaremos toda la lista de eventos disponibles para dicho objeto.


Excel Avanzado I

Para descubrir los eventos que tiene un objeto es suficiente con abrir el Editor de Visual Basic y

posteriormente el Examinador de objetos o presionando "F2". En el panel izquierdo se mostrarán

los objetos y en el panel derecho las propiedades, métodos y eventos de dicho objeto. Podrás

distinguir los eventos porque tienen un icono en forma de rayo (color amarillo):

Algunos ejemplos de eventos en VBA son los siguientes:

WorkbookOpen: El usuario abre un libro de Excel.

WorkbookActivate: El usuario activa un libro de Excel.

SelectionChange: El usuario cambia la selección de celdas en una hoja.


Tema 4: Manejo de

módulos en VBA

Organiza tus procesos mediante módulos

¿Sin los módulos no se "La respuesta es no, anteriormente ya

puede programar? programamos en espacio perteneciente

a cada objeto, sin embargo es

importante concoer como organizar

nuestros scripts a través de los

módulos".

Mantente en contacto si tienes alguna duda [email protected]


4. Manejo de módulos Excel Avanzado I

Un módulo es dónde se escribe el código en VBA. Un proyecto de VBA es un conjunto de módulos

(o uno sólo) dónde se escriben las diferentes macros. Los módulos nos permiten organizar el código

de VBA en diferentes archivos dentro de VBA de manera rápida, fácil e intuitiva.

Otra de las utilidades e importancias de una

módulo es permitir reutilizar el código que sea

muy repetitivo ya que con la sentecia

"Call" se puede llamar a dicho

módulo creado.

Como ya se había mencionado antes para crear un módulo no dirigimos a la barra de herramientas,

luego en Insertar y por último Módulo.

Puede cambiar el nombre del módulo dirigiendose a la

barra de propiedes en el campo Name.

Ejercicios resueltos

Observe la siguiente hoja de cálculo:


Excel Avanzado I

Usted ha realizado la siguiente compra y ha solicitado factura. Se le pide calcular el subtotal de la

compra, el monto IGV y el total. Para ello diseño en VBA lo siguiente:

En un módulo llamado "calculos" cree cuatro procedimientos, uno llamado "HallarSubTotal",

otro "HallarIGV", otro llamado "HallarTotal" y uno llamado "HallarTodo" que contenga a los

demás procedimientos. Cada procedimiento deberá leer los valores de la hoja y escribir los

cálculos en las celdas en blanco.

En un módulo llamado "limpieza" cree un procedimiento llamado "Limpiar" el cual pueda borrar

los valores colocados en las celdas en blanco.

En un módulo llamado "guardar" cree un procedimiento llamado "Guardar" que guarde el libro.

Cree un botón que referencie a cada uno de los módulos.


Excel Avanzado I
Tema 5: Diseño de

formularios.

Crea aplicaciones de escritorio gracias a los formularios

de Excel

¿Para qué sirven los ¿Te imaginas recopilar la información de un censo

nacional en hoja y papel y luego digitalizar toda


formularios?
esta información en Excel para luego

realizar el análisis estadístico? La solución

de estos problemas puede ser la

implementación de un formulario.

Mantente en contacto si tienes alguna duda [email protected]


5. Diseño de formularios. Excel Avanzado I

Los formularios son otros de los muchos objetos dentro de Excel y son cuadros de diálogo en donde

podremos recopilar información filtrada para después sistematizar nuestra información de manera

adecuada.

Los formularios sean quizás el objeto mas

importante dentro de Excel ya que es

increíble la cantidad de proyectos que se

pueden diseñar con ellos al integrar los

conocimientos anteriormente aprendidos.

Trata de estudiar estos conceptos

para facilitar la implementación de

los formularios en tus proyectos.

EJEMPLOS 01

Para motivarte en el estudio de esta parte del curso observa los siguiente proyectos realizados con

programacioón en VBA y formularios.

Algunas vistas del Sistema

de control de asistencias del

personal de enfermería en la

Clínica Ricardo Palma, fase

1. Este proyecto luego fue

llevado al desarrollo web de

aplicaciones.
Excel Avanzado I

Mi primer formulario

Espacio de trabajo 01

Para comenzar con el diseño de nuestros formularios es

importante establecer nuestro entorno o espacio de trabajo,

para ello simplemente realizamos los siguientes pasos:

En la barra de herramientas:

1.Clic en Insertar
2. Clic en Userform

Inmediatamente podrán observar que se creo un formulario en blanco, este será nuestro espacio de

trabajo en donde colocaremos todos los elementos para que el formulario pueda estar listo para

ser programado.

Nota que se creo un nuevo objeto en la ventana de

proyectos al igual que cuando se crea un módulo.

VBA nos dá la posibilidad de crear tantos

formularios veamos necesarios para

que nuestro proyecto funcione. Para

ello es importante definir el

funcionamiento del mismo.

Cuadro de herramientas 02

Ya tenemos nuestro espacio de trabajo pero ahora

necesitamos de elementos y/o herramientas para

empezar con el diseño. Estas herramientas son llamadas

controles y las podemos encontrar dentro del elemento

llamado "Cuadro de herramientas" la cual podemos

activarla de la siguiente manera:

En la barra de herramientas:

1.Ver
2. Cuadro de herramientas
Excel Avanzado I

Los controles de formularios mas usados son los siguientes.

Para usar un control dentro de nuestro espacio de

trabajo solo basta con arrastrar el elemento hacia

el espacio.
Excel Avanzado I

Ventana de propiedades 03

Como todos los objetos de Excel los formularios y sus controles

tienen propiedades los cuales pueden ser observados en la

ventana de propiedades. Para habilitar la ventana se puede seguir

los siguientes pasos:

En la barra de herramientas:

1.Ver
2. Venta de propiedades o "F4"

Las propiedades cambian conforme se van seleccionando los

objetos.

Ejecutar un formulario 04

Existen varias formas de ejecutar un formulario. La primera de ellas es mediante los


los comandos
comandos de
de

depuración y ejecución:

Otra forma es llamando a la propiedad ".Show" mediante un módulo. Para ello, en un módulo

aparte digitamos el siguiente script

Sub AbrirFormulario()
"UserForm1" es el nombre por
'Código para abrir formulario
UserForm1.Show 'Propiedad .Show sirve para abrir el formulario defecto del formulario, este
End Sub
valor puede ser modificado

desde la ventana de propiedades

Una vez creado el módulo podemos llamarlo desde un botón en la hoja de cálculo o macros.
Excel Avanzado I

Diseño 05

Como todos los objetos de Excel los formularios y sus controles

tienen propiedades los cuales pueden ser observados en la

ventana de propiedades. Para habilitar la ventana se puede seguir

los siguientes pasos:

En la barra de herramientas:

1.Ver
2. Venta de propiedades o "F4"

Las propiedades cambian conforme se van seleccionando los

objetos.

Ejecutar un formulario 06

Existen varias formas de ejecutar un formulario. La primera de ellas es mediante los


los comandos
comandos de
de

depuración y ejecución:

Otra forma es llamando a la propiedad ".Show" mediante un módulo. Para ello, en un módulo

aparte digitamos el siguiente script

Sub AbrirFormulario()
"UserForm1" es el nombre por
'Código para abrir formulario
UserForm1.Show 'Propiedad .Show sirve para abrir el formulario defecto del formulario, este
End Sub
valor puede ser modificado

desde la ventana de propiedades

Una vez creado el módulo podemos llamarlo desde un botón en la hoja de cálculo o macros.
Excel Avanzado I

Ejercicio

A continuación se creará el siguiente formulario correspondiente a la empresa InfoPUC que se

encargará de recibir la información de pago de sus clientes, para ello se necesita diseñar el

siguiente formulario:

Diseño 01

Para el diseño se necesitó de los siguientes elementos: cinco (05) labels o etiquetas, cuatro (04)

textbox o cuadros de texto, un (01) combobox o cuadros combinados, dos (02) frames o marcos,

dos (02) optionButtons o botones de opciones, un (01) checkBox o cuadro de marcación y un (01)

image o cuadro de imagen.

"Se puede realizar la modificación de la apariencia del formulario y sus elementos jugando

con sus propiedades. Por ejemplo:

BackColor: Determina el color de fondo del objeto en mención.

Font: Determina el tipo de fuente de los objetos que muestren texto.

BorderColor: Determina el color del borde del objeto.

El siguiente proceso, terminado el diseño, es el de identificación y declaración de controles, es un

paso que algunos prefieren obviar pero sin embargo permitiría ahorrar tiempo de diseño y dolores

de cabeza si se opta por realizarlo.


Excel Avanzado I

Identificación de elementos 02

Para la realización de este paso necesitaremos trabajar con la propiedad "name". El paso consiste en

darle un nombre único e irrepetible a cada control del formulario, esto con el fin de luego poder

identificarlos y llamarlos para su procesos de programación.

No existe una regla para asignar

nombres a los controles, la única

regla es que el nombre no tenga

caracteres especiales ni

espacios. En el siguiente cuadro

se puede observar una

convención para una buena

identificación

Inicialización de controles 03

Hay algunos controles que requieren de su inicialización de variables, como ejemplo los cuadros

combinados o comboBox los cuales van a desplegar una lista de datos a ser seleccionados.

Una opción para inicializar los valor de un comboBox es

mediante su propiedad "RowSource". El valor de esta

propiedad requiere la referencia de la hoja de cálculo en

donde se encuentra la información. En este caso el rango de

distritos se encuentra en el rango A2:A5 de la hoja DATOS.

Otra forma de inicializar valor de un control es por medio del evento

"Initialize" del Formulario. Para acceder a ello hacer doble clic en el

formulario o clic derecho y "ver código". Al hacerlo se debió activar el

espacio para el evento "click" sin embargo ese no es el indicado y

hacemos el cambio a "Initialize". El cuál ejecuta su interior al inicializar

el formulario.
Excel Avanzado I

Con el evento creado podemos llamar a la misma propiedad RowSource o a la propiedad "AddItem".

'Proceso de inicialización de valores usando la propiedad "AddItem"


'El proceso se ejecuta inicializar el formulario
Private Sub UserForm_Initialize()
'Inicializamos valores del comboBox
cmbDistrito.AddItem "Miraflores"
cmbDistrito.AddItem "La Molina"
cmbDistrito.AddItem "San Isidro"
cmbDistrito.AddItem "San Juan de Lurigancho"
cmbDistrito.AddItem "Lima Centro"
cmbDistrito.AddItem "Breña"
End Sub

'Proceso de inicialización de valores usando la propiedad "RowSource"


'El proceso se ejecuta inicializar el formulario
Private Sub UserForm_Initialize()
'Inicializamos valores del comboBox
cmbDistrito.RowSource = "DATOS!A2:A5"
End Sub

Almacenamiento de información 04

Ya con el proceso de diseño completo, lo que faltaría es enviar la información a la hoja de cálculo

para llenar una base de datos. Para ello es importante recordar el refrán:

"LO QUE TENGO A LA DERECHA LO GUARDO EN LO QUE TENGO A LA IZQUIERDA"

Diseñamos la siguiente tabla en una hoja llamada "BD", este cuadro se encargará de recibir la

información ingresada a través del formulario.

Una recomendación es siempre crear una columna llamada "Key" o llave que sea el indicador

único e irrepetible de nuestra base de datos. Esto ayudará a poder identificar una

fila en particular para un filtrado o una búsqueda. Generalmente esta llave suele

llenarse correlativamente.

Pero, ¿Donde codifico o escribo el código que se encargará de ejecutar el proceso de envío de

información?. Pues analicemos, ¿Cuál es el control del formulario que al ejecutar debe procesar la

petición?. Del análisis encontramos que la respuesta es el botón "GUARDAR".


Excel Avanzado I

Entonces hacemos doble clic en el botón "GUARDAR" para acceder a su evento, tambien lo pueden

hacer haciendo clic derecho y luego "ver código". Al hacer ello se abrirá un espacio de codificación

con el evento llamado: "btnGuardar_Clic".

Los formularios operan a través de los eventos de

sus objetos. Por ejemplo en este caso el evento

"clic" quiere decir que ejecutará lo que está

en su interior cada vez que hagamos

clic en el objeto. Si analizas esta lógica

notaras que tiene mucho sentido. Para

mayor información repasar lo realizado en el

módulo 1.

'El proceso se ejecuta al hacer clic en el botón "btnGrabar"


Private Sub btnGrabar_Click()
'Llenamos la información en la hoja BD de lo ingresado en los formularios
ThisWorkbook.Worksheets("BD").Cells(2, "A") = txtNombres
ThisWorkbook.Worksheets("BD").Cells(2, "B") = txtApellidos
ThisWorkbook.Worksheets("BD").Cells(2, "C") = cmbDistrito
ThisWorkbook.Worksheets("BD").Cells(2, "D") = txtRUC
ThisWorkbook.Worksheets("BD").Cells(2, "E") = txtRazonSocial
ThisWorkbook.Worksheets("BD").Cells(2, "F") = opCheque
ThisWorkbook.Worksheets("BD").Cells(2, "G") = opTransferencia
ThisWorkbook.Worksheets("BD").Cells(2, "H") = chkCredito
Diseñamos la siguiente tabla en una hoja llamada "BD", este cuadro se encargará de recibir la
End Sub
información ingresada a través del formulario.

entonces, al ejecutar nuestro formulario y llamar la información en sus controles y haciendo clic en el

botón aceptar habremos enviado la información a la fila dos de la hoja "BD".

Llenando una base de datos 05

Para llenar información de manera secuencial en una hoja de cálculo es necesario conocer la

siguiente estrategia:

1. Ubicar la última fila con valor, sin importar si existieran filas vacías anteriormente (de esta

validación se encargará el formulario)

2. Colocar la nueva información en la fila siguiente.

Para ello utilizaremos el siguiente código:

uFila = Thisworkbook.Worksheets("nombre_hoja").cells(rows.count, columna).end(xlUp).Row


Excel Avanzado I

En donde:

Thisworkbook :
Libro actual

Thisworkbook.Worksheets("Hoja1"):
Hoja 1 del libro actual

Thisworkbook.Worksheets("Hoja1").Cells(Rows.Count, "A"):
Retorna el valor de la celda "A1048576". Rows.Count retorna el conteo total de filas, por

defecto 1048576

Thisworkbook.Worksheets("Hoja1").Cells(Rows.Count, "A").End(xlUp):
Se ubica en la última fila con valor de la columna "A". Retorna el valor de dicha celda

Thisworkbook.Worksheets("Hoja1").Cells(Rows.Count, "A").End(xlUp).Rows:
Se ubica en la última fila con valor de la columna "A". Retorna el número de fila.

'El proceso se ejecuta al hacer clic en el botón "btnGrabar"


Private Sub btnGrabar_Click()
'Encontramos la última fila de la hoja "BD"
uFila = Thisworkbook.Worksheets("BD").cells(rows.count, "A").End(xlUp).Row + 1
'Llenamos la información en la hoja BD de lo ingresado en los formularios
ThisWorkbook.Worksheets("BD").Cells(uFila, "A") = txtNombres
ThisWorkbook.Worksheets("BD").Cells(uFila, "B") = txtApellidos
ThisWorkbook.Worksheets("BD").Cells(uFila, "C") = cmbDistrito
ThisWorkbook.Worksheets("BD").Cells(uFila, "D") = txtRUC
ThisWorkbook.Worksheets("BD").Cells(uFila, "E") = txtRazonSocial
ThisWorkbook.Worksheets("BD").Cells(uFila, "F") = opCheque
ThisWorkbook.Worksheets("BD").Cells(uFila, "G") = opTransferencia
ThisWorkbook.Worksheets("BD").Cells(uFila, "H") = chkCredito
End Sub

De la siguiente manera podemos llenar la información fila tras fila utilizando código en VBA.

Cerrar un formulario 05

Si abrir un formulario es representado por ".Show" cerrar uno sería con ".Hide" ¿no?. La repuesta es

no, la propiedad ".Hide" lo que hace es ocultar el formulario, sin embargo esto sigue estando en

ejecución. La forma correcta de cerrar un formulario es a través de "Unload". Entonces el botón que

gobierna esta acción ya no es "Grabar", lo hará el botón "Cerrar".

Option Explicit
'El proceso se ejecuta al hacer clic en el botón "btnGrabar"
Private Sub btnCerrar_Click()
'Cerramos el formulario usando Unload. La palabra reservada "Me" hace referencia al formulario activo, tambien pudo ser
reemplazado con el nombre del formulario, en este caso frmClientes
Unload Me
End Sub

También podría gustarte