Sie sind auf Seite 1von 4

UNIVERSIDAD DE ANTIOQUIA

Facultad de Ingeniería
Resumen Unidad 6
Profesor: Gabriel Taborda
Manejo Persistente de la Información
En las aplicaciones o programas la información que va a procesar se divide en dos categorías: la información
que se mantiene constante, conocida como persistente, y la información que cambia en cada ejecución, llamada
como novedades. Para que un programa sean funcionales requieren guardar o almacenar la información
persistente y el usuario solo debe ingresar las novedades. En VBA la información persistente se almacena en las
aplicaciones Office, como: Excel, Access o Word, mediante el uso de los Objetos de Aplicación de VBA.
1. Objetos del Excel
El diagrama con la jerarquía de los Objetos de Excel es:

2. Propiedades y Métodos de los Objetos del Excel


En la siguiente tabla se resumen las propiedades o variables y los métodos o subprogramas que disponen los
Objetos del Excel para su uso o manipulación:
Application Hace referencia al Libro y al Programa
Propiedades: Descripción Ejemplo
Caption Barra de título Application.Caption = “Liquidación
Path Ruta donde está Instalado el Excel
StatusBar Mostrar mensajes de en la barra de Application.StatusBar = “Actualizando.....”
estado
DisplayFormulaBar Mostrar u ocultar la Barra de fórmulas Application.DisplayFormulaBar = False
DisplayAlerts Muestra los cuadros de diálogo de Application.DisplayAlerts = False
alerta
DisplayFullScreen Modo pantalla completa Application.DisplayFullScreen = True
Métodos Descripción /Formato Ejemplo/Explicación
OnKey Programa teclas Application.OnKey “^ { +}”, “saludo”
Application.Onkey(tecla, ejecuta saludo la combinación de teclas CTRL +
procedimiento)
Wait Realiza una pausa Application.Wait(Now + timeValue(“0:01:00”))
Application.Wait(hora) Pausa de 1 minuto
Quit Salir de Microsoft Excel Application.Quit
Workbooks  Todos los libros, Workbook  Solo un libro
Referencias: Descripción Ejemplo
Application.Workbooks Devuelve la colección de libros
Application.ActiveWorkbook Devuelve el libro activo
Application.ThisWorkbook Esta propiedad devuelve el libro que
contiene el programa
Propiedades: Descripción Ejemplo
Item Referencia a un libro con un número Workbooks.Item(3) o
único elemento Workbooks.(3)
Activate Activa a un libro con el nombre Workbooks(“sueldos.xlsm”).Activate
ActiveWorkbook Devuelve el libro activo
Name Devuelve el nombre de un libro Nombrelibro = ActiveWorkbook.Name
Saved Devuelve true Si se guardó el archivo If ThisWorkbook.Saved = False then
SaveAs Permite crear y guardar un libro ThisWorkbook.SaveAs (“Ejemplo1.xlsm”)
Save Guarda los cambio a un libro ThisWorkbook.Save
Métodos Descripción Ejemplo
Add Permite crear un nuevo libro Workbooks.Add
Close Permite cerrar un libro Workbooks.Close o
Workbooks(“Ventas.xlsm”).Close
Open Para abrir un libro Workbooks.Open (“Ventas.xlsm”) o
Workbooks.Open Filename:=”Ventas.xlsm”,
Password:=”clave”
Worksheets  Todas las hojas, Worksheet  Una hoja del libro
Propiedades: Descripción Ejemplo
Item Para hacer referencia a una Worksheets.Item(2)
determinada hoja de la colección
Activate Para activar una hoja del libro Worksheets(“Norte”).Activate o
Worksheets.Item(2).Activate
ActiveSheet hacer referencia a a hoja activa del
libro
Name para establecer o devolver el nombre Worksheets(3).Name o
de una hoja de cálculo Worksheets(“hoja1”).Name = “Enero”
Visible mostrar u ocultar una hoja Worksheets(“Enero”).Visible = False
Count devuelve el número de hojas MsgBox Worksheets.Count
Métodos Descripción /Formato Ejemplo/Explicación
Add permite agregar hojas Worksheets.Add after:=Worksheets(“Febrero”)
Worksheets.Add(Before, After, Count, Se agrega despues de la hoja febrero
Type)
Move mover una hoja Worksheets(“Abril”).Move
After:=Worksheets(ultima)
Worksheets.Move(Before, After)
Copy copiar Worksheets(“Zona1”).Copy
After:=Worksheets(1)
Delete Eliminar hoja Worksheets(“Norte”).Delete
Range celda o conjunto de celdas
ActiveCell devuelve la celda activa Application.ActiveCell
Propiedades: Descripción Ejemplo
Select selecciona un rango Range(“A1:E1”).Select
Cells Para referenciar celdas específicas de Cells(1, 1).Value = “2”
una hoja
Rows hace referencia a una fila Rows(“1”).Select
Columns hace referencia a una columna Columns(“C”).Select
Offset devuelve un objeto Range que está ActiveCell.Offset (0,2).Select
desplazado por un cierto número de
filas y columnas
Value permite establecer o devolver el valor Range(“A5”).Value = 56 o
que tiene una celda ActiveCell.Value =”Hola” o
Worksheets(“Gastos”).Range(“A2”).Value =
“Comunes”
End Su función es desplazar el cursor a la Range(“A7”).End(xlDown).Offset(1, 0).Select
celda que esté, a partir de la celda
activa, en dirección hacia arriba (xlUp),
abajo (xlDown), derecha (xlToRight) o
izquierda (xlToLeft), aquel que está
delimitado por una fila
o columna en blanco
Range.End(Direction)
Font para establecer el tipo de fuente Cells(1, 1).Font.Name = “Comic Sans Ms”
Cells(1, 1).Font.Size = 10
Cells(1, 1).Font.Bold = True
Interior permite establecer el color del interior Cells(i, 1).Interior.ColorIndex = 3
de una celda. El valor va de 1 a 56

3. Ejemplos del Manejo Persistente de la información


Las dos operaciones básicas del manejo persistente de la información son leer y escribir datos en una hoja
de Excel. Los ejemplos se basan en el siguiente formulario:

a. Escribir en la hoja de Excel


'Método para guardar la información de las cajas de texto del formulario en la hoja activa (hoja2) del libro de Excel,
partido de la hoja vacía.
Private Sub brGuardar_Click()
Dim cant As Integer 'Variable para guarda la cantidad de filas o usarios
Dim cod As Integer 'Variable para guarda el código
Workbooks("GUI1").Worksheets("hoja2").Select 'Se ubica en la en el libro y hoja a escribir
'Range("a10000").End(xlUp).Select 'Se ubica en la celda A, 10000 y se devuelve hasta la primero que
tenga información. Es otra forma de realizarlo, cundo ya existe
información
Range("d2").Select 'Se ubica en la celda
If (ActiveCell.Value = Null) Then ‘Para verificar que en la celda exista información, es decir usuarios
cant = 0 'Si no existe información, coloca la cantidad en cero
Else
cant = CInt(ActiveCell.Value) 'Captura la cantidad de la celda seleccionada
End If
If (cant = 0) Then ‘Para validar que en la hoja exista información
Range("a1").Select ’Se ubica al principio de la hoja
ActiveCell.Value = "Código" ‘Escribe los títulos de las columnas
ActiveCell.Offset(0, 1).Value = "Usuario"
ActiveCell.Offset(0, 2).Value = "Clave"
ActiveCell.Offset(0, 3).Value = "Cantidad"
ActiveCell.Offset(1, 0).Value = txCod.Text ‘Escribe la información de las cajas de texto
ActiveCell.Offset(1, 1).Value = txUsu.Text
ActiveCell.Offset(1, 2).Value = txCla.Text
ActiveCell.Offset(1, 3).Value = 1
Else ‘Si no la hoja ya posee información
cant = cant + 1 ‘Incrementa la cantidad de usuarios en 1
ActiveCell.Value = cant ‘Guarda en la celda D2 la cantidad de usuarios
Range("a" & cant + 1).Select ‘Se ubica o selecciona la celda donde va a escribir
ActiveCell.Offset(0, 0).Value = txCod.Text ‘Escribe la información de las cajas de texto
ActiveCell.Offset(0, 1).Value = txUsu.Text
ActiveCell.Offset(0, 2).Value = txCla.Text
End If
End Sub

b. Leer de la hoja de Excel


'Método del botón buscar para ubicar un usuario y mostrarlo en la caja de texto o decir que no existe
Private Sub btBuscar_Click()
Dim codbus As Integer 'Variable para guarda el código a buscar
Dim sw As String 'Variable tipo switch para verificar si lo encontró
sw = "no"
codbus = CInt(txCod.Text) 'Captura el código a buscar
Workbooks("GUI1").Worksheets("hoja2").Select 'Selecciona o activa la hoja 2
Range("a2").Select 'Se ubica en el primer usuario de la hoja 2
Do While (ActiveCell.Text <> "") 'Ciclo para buscar hasta que exista información en la hoja
If codbus = CInt(ActiveCell.Text) Then 'Pregunta si el código a buscar es igual al de la hoja
txUsu.Text = ActiveCell.Offset(0, 1).Text 'Si si, muestra en la caja de texto la información
txCla.Text = ActiveCell.Offset(0, 2).Text 'del nombre y la clave en las cajas de texto
sw = "si" 'y coloca el switch en si lo encontró
End If
ActiveCell.Offset(1, 0).Select 'Para pasar al siguiente código de usuario, en la fila siguiente
Loop
If sw = "no" Then 'Si al terminar el ciclo, el switch está en NO, es que no existe
MsgBox ("No existe")
txUsu.Text = ""
txCla.Text = ""
txCod.SetFocus
End If
End Sub

c. Leer y escribir en la hoja de Excel


'Método para buscar un usuario y eliminarlos
Private Sub brEliminar_Click()
Dim codbus As Integer 'Variable para guarda el código a buscar
Dim sw As String 'Variable tipo switch para verificar si lo encontró
sw = "no"
codbus = CInt(txCod.Text) 'Captura el código a buscar
Workbooks("GUI1").Worksheets("hoja2").Select 'Selecciona o activa la hoja 2
Range("a2").Select 'Se ubica en el primer usuario de la hoja 2
Do While (ActiveCell.Text <> "") 'Ciclo para buscar hasta que exista información en la hoja
If codbus = CInt(ActiveCell.Text) Then 'Pregunta si el código a buscar es igual al de la hoja
txUsu.Text = ActiveCell.Offset(0, 1).Text 'Si si, muestra en la caja de texto la informacion
txCla.Text = ActiveCell.Offset(0, 2).Text 'del nombre y la clave en las cajas de texto
Do While (ActiveCell.Text <> "") 'Ciclo para recorrer el resto de la información y reemplazarla
ActiveCell.Offset(0, 0).Value = ActiveCell.Offset(1, 0).Text 'Reemplaza el código, por el código de abajo
ActiveCell.Offset(0, 1).Value = ActiveCell.Offset(1, 1).Text
ActiveCell.Offset(0, 2).Value = ActiveCell.Offset(1, 2).Text
sw = "si" 'Coloca el switch en si lo encontro
ActiveCell.Offset(1, 0).Select
Loop
Range("d2").Select
ActiveCell.Value = CInt(ActiveCell.Text) - 1
Exit Do
End If
ActiveCell.Offset(1, 0).Select 'Para pasar al siguinte codigo de usuario, en la fila siguinte
Loop
If sw = "no" Then 'Si al terminar el ciclo, el switch esta en NO, es que no existe
MsgBox ("No existe")
txUsu.Text = ""
txCla.Text = ""
txCod.SetFocus
End If
End Sub

Das könnte Ihnen auch gefallen