You are on page 1of 4

Examen de Excel VBA2

Una empresa alquila anuncios publicitarios en diversas avenidas de la ciudad.


Los anuncios se alquilan por semanas, y se desea llevar el control de cuando
vencen los plazos de alquiler de cada anuncio. Para esto se ha creado una hoja
de clculo que contiene la relacin de todos los carteles de anuncios
publicitarios alquilados.
Usted deber hacer lo siguiente:
1. En la carpeta "Examen VBA2" abrir el archivo "Carteles.xlsm" el cual
contiene 2 tablas: la primera con la relacin de carteles alquilados
(rango llamado "Lista"), y la segunda tabla contiene la lista de los
archivos con la imagen de los anuncios publicados en los carteles (rango
llamado "Anuncios").
2. En visual Basic crear el siguiente formulario:

3. Al abrirse el formulario (utilice el evento Userform_Initialize), este deber


mostrar la informacin del cartel N 1 incluyendo la imagen del anuncio
publicado en el cartel, y tambin deber hacer que el cuadro combinado
"Duracion" despliegue las alternativas para elegir de 1 a 10 semanas
(usar las sentencias Duracion.addItem) . Adems deber definir el valor
maximo del SpinButton "Boton" con la sentencia:
Boton.Max=Application.WorksheetFunction.Max(Range("NCartel"))
4. Los cuadros de texto "FechaFinal" y "Plazo" se calcularn siempre y
cuando "FechaInicial" y "Duracin" tengan datos. Los clculos se
realizarn en el instante en que el cuadro combinado "Duracion"
adquiera un valor; y estos clculos se debern hacer de la siguiente
forma:
a. FechaFinal = CDate(FechaInicial) + Duracin * 7
b. Plazo=CDate(FechaFinal) Date
(Recuerde que FechaInicial y FechaFinal contienen texto, y hay que
convertirlos en datos tipo fecha utilizando la funcin CDate)

5. Acciones de los elementos del formulario:


a. Boton: es el SpinButton situado al lado derecho del nmero de
cartel. Este botn se encargar de cambiar aumentando o
disminuyendo el valor del nmero de cartel.
b. NCartel: Cuando cambie el nmero de cartel en este cuadro de
texto, el formulario deber mostrar toda la informacin
concerniente a ese anuncio trayndola del rango "Lista" de la hoja
de clculo.
c. Anuncio: Es el cuadro combinado que deber desplegar la lista de
los archivos JPG que se encuentran en el rango llamado "Anuncios"
para poder elegir uno de ellos, lo cual har que en el recuadro
Foto se cargue el archivo con ese nombre de anuncio elegido. Y si
este cuadro combinado esta en blanco entonces deber cargarse
en la Foto la imagen del archivo llamado "Disponible.jpg"
d. Plazo: Cuando este cuadro de texto cambie de valor, se deber
verificar si este valor es negativo, de ser as; deber hacerse
visible el mensaje: PLAZO VENCIDO.
e. Mensaje: Es la etiqueta PLAZO VENCIDO que permanece oculta
(propiedad visible=False) y solo se hace visible cuando el plazo se
convierte en negativo. Si al hacerse visible, se hace un clic sobre
esta etiqueta , deber aparecer la siguiente ventana:

Si se elije el botn "Si", se debern borrar en el formulario todos


los casilleros y la foto; excepto los casilleros NCartel, Tamao y
Ubicacin, as como tambin se borrarn del cuadro Lista de la
hoja de clculo los datos de las columnas correspondientes para
dejar disponible el cartel (excepto NCartel, Tamao y Ubicacin).
f.

NuevoCartel: Este botn de comando se encargara de borrar


todos los casilleros del formulario excepto el numero del cartel, y
escribir en el cuadro de texto NCartel un nuevo nmero utilizando
las siguientes sentencias:
NCartel=Application.WorksheetFunction. Max(Range("NCartel"))+1
Boton.Max=Application.WorksheetFunction.
Max(Range("NCartel"))+1
Boton=NCartel
g. Registrar: Al hacer clic en este botn de comando, un msgbox
preguntar si estamos seguros de querer registrar estos datos. Si
se responde que "Si", se debern actualizar todos los datos del
formulario en el cuadro Lista de la hoja de clculo para un cartel

ya existente; y si es un nuevo cartel, este se copiara al final de la


lista.
h. Cerrar: Este botn simplemente cerrar el formulario.
i. FechaInicial: Cuando se haga clic en este cuadro de texto deber
aparecer un formulario mostrando el calendario para elegir una
fecha. Utilice el evento FechaInicial_Enter, en lugar de
FechaInicial_Change:
Private Sub FechaInicial_Enter()
Calendario.Show
End Sub
Nota:

Si no dispone de la herramienta Calendario, o Month View en su


PC entonces omita este paso.

ENVIAR A
danzeg@hotmail.com
Asunto: VB2-7FEB-NOMBRE Y APELLIDO
HASTA EL PRXIMO DOMINGO 14

998645671

You might also like