PDF de programación - Capítulo 8 - Administración de eventos

Imágen de pdf Capítulo 8 - Administración de eventos

Capítulo 8 - Administración de eventosgráfica de visualizaciones

Publicado el 10 de Mayo del 2017
918 visualizaciones desde el 10 de Mayo del 2017
210,9 KB
6 paginas
Creado hace 10a (02/09/2013)
283

Capítulo 8
Administración de eventos

1. Presentación

Administración de eventos

Un evento es una acción del usuario o del sistema reconocido por un objeto
de Microsoft Excel. El evento desencadena un procedimiento, asociado al
evento del objeto activo.
Estos procedimientos le permiten asociar un código personalizado en respues-
ta a un evento que se produce en un objeto Excel (libro, hoja, formulario, grá-
fico, etc.).

284

VBA Excel 2013
Programación en Excel: macros y lenguaje VBA

2. Escritura de eventos

2.1 Eventos de libro, de hoja o de formulario

Usted puede acceder a los procedimientos de eventos asociados a un objeto de
la siguiente manera:
dEn la ventana Explorador de proyectos, haga doble clic en el objeto de-
seado (libro, hoja o formulario) para hacer aparecer la ventana de código
correspondiente.

dAbra la lista desplegable a la izquierda de la ventana de código y seleccione

Workbook, Worksheet o UserForm, según el objeto seleccionado.

dTambién puede seleccionar un evento vinculado al objeto seleccionado en la

lista desplegable de la derecha, para asociarle un código personalizado.

Observación
La ejecución de los procedimientos de eventos, se puede desactivar en
cualquier momento asignando el valor False a la propiedad EnableEvents del
objeto Application.

d
e
v
r
e
s
e
r

s
t
h
g
i
r

l
l

A

-

I

N
E

s
n
o
i
t
i
d
E

©

Administración de eventos
Capítulo 8

Ejemplo

285

Este ejemplo muestra cómo obtener un listado histórico de todos los hiper-
vínculos visitados en la hoja de cálculo activa.

Resultado en Excel:

286

VBA Excel 2013
Programación en Excel: macros y lenguaje VBA

2.2 Eventos del objeto Application

Se necesitan tres etapas para la escritura y ejecución de los eventos del objeto
Application.

Etapa 1
dInserte un módulo de clase:
Insertar - Módulo de clase

o abra la lista

y haga clic en Módulo de clase.

dUna vez insertado el módulo, asígnele un nombre.

Ejemplo

Dele el nombre ObjApplication al módulo de clase.

Etapa 2
dEn el módulo de clase, cree un objeto Application con el siguiente código:

Public WithEvents NomObjeto As Application

Ejemplo

Creación del objeto MiAplicación como aplicación.

Public WithEvents MiAplicacion As Application

El objeto así creado queda disponible en la lista de la izquierda del módulo.
dSeleccione el objeto creado en la lista de la izquierda del módulo y luego se-
leccione el evento esperado en la lista de la derecha. Escriba el código de los
procedimientos que desea generar.

d
e
v
r
e
s
e
r

s
t
h
g
i
r

l
l

A

-

I

N
E

s
n
o
i
t
i
d
E

©

Administración de eventos
Capítulo 8

Ejemplo

287

Creación de dos procedimientos de eventos: el primero realiza la inserción
de una nueva hoja; el segundo, la creación de un nuevo libro.

Public WithEvents MiAplicacion As Excel.Application
______________________________________________________________________
Private Sub MiAplicacion_WorkbookNewSheet _
(ByVal Wb As Workbook, ByVal Sh As Object)
Dim NomHoja As String
' Cada vez que se agrega una hoja se pide al usuario
' que introduzca un nombre que a continuación se destinará a la hoja
' insertada tras las hojas existentes
NomHoja = InputBox("Introduzca el nombre de la hoja")
ActiveSheet.Name = NomHoja
ActiveSheet.Move After:=Sheets(Sheets.Count)
End Sub
______________________________________________________________________
Private Sub MiAplicacion_NewWorkbook(ByVal Wb As Workbook)
Dim NbHojas As Integer
Dim NbActual As Integer
Dim Diferencia As Integer
' Por cada nuevo libro,
' solicitamos al usuario la cantidad de hojas
' Según el caso, se agregan o eliminan las hojas necesarias
Do
NbHojas = Application.InputBox _
("¿Cantidad de hojas?", Type:=1)
Loop While NbHojas = False
NbActual = Sheets.Count
Diferencia = NbActual - NbHojas
' Eliminar las hojas de más
' Eliminar los mensajes de alerta con el fin
' de no obtener mensajes en la eliminación de hojas
Do While Diferencia > 0
Application.DisplayAlerts = False
Sheets.Item(Diferencia).Select
ActiveWindow.SelectedSheets.Delete
Diferencia = Diferencia - 1
Loop

' Agregar hojas necesarias
' Se desactivan los eventos para
' no indicar los nombres de las nuevas hojas
Do While Diferencia < 0
Application.EnableEvents = False
Sheets.Add

288

VBA Excel 2013
Programación en Excel: macros y lenguaje VBA

Diferencia = Diferencia + 1
Loop
' Reactivar eventos y alertas
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub

Etapa 3
dActive un módulo cualquiera y conecte el objeto declarado en el módulo de

clase con el objeto Application para las siguientes instrucciones:
Dim NomVariable As New NomModuloDeClase

Sub NomProced ()
Set NomVariable.NomObjeto = Application
End Sub

Ejemplo

Agregue el siguiente código en el módulo Declaraciones.

Option Explicit
Dim app As New ObjApplication
________________________________________________________________
Sub InicializaMiAplicacion()
Set app.MiAplicacion = Application
End Sub

Finalmente, llame al procedimiento InicializaMiAplicacion al abrir el libro
(módulo de clase ThisWorkbook).

Private Sub Workbook_Open()
InicializaMiAplicacion
End Sub

Cuando se abra el libro, se ejecutarán automáticamente los procedimientos de
eventos creados durante la etapa 2 y se agregarán los libros o las hojas. Estos
procedimientos se desactivarán al cerrar el libro.

d
e
v
r
e
s
e
r

s
t
h
g
i
r

l
l

A

-

I

N
E

s
n
o
i
t
i
d
E

©
  • Links de descarga
http://lwp-l.com/pdf3485

Comentarios de: Capítulo 8 - Administración de eventos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad