Está en la página 1de 3

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 cálculo que contiene la relación 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 relación 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


información del cartel Nº 1 incluyendo la imagen del anuncio publicado en el cartel, y
también deberá hacer que el cuadro combinado "Duracion" despliegue las alternativas
para elegir de 1 a 10 semanas (usar las sentencias Duracion.addItem) . Además 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 calcularán siempre y cuando "FechaInicial"
y "Duración" tengan datos. Los cálculos se realizarán en el instante en que el cuadro
combinado "Duracion" adquiera un valor; y estos cálculos se deberán hacer de la
siguiente forma:
a. FechaFinal = CDate(FechaInicial) + Duración * 7
b. Plazo=CDate(FechaFinal) – Date

(Recuerde que FechaInicial y FechaFinal contienen texto, y hay que convertirlos en


datos tipo fecha utilizando la función CDate)
5. Acciones de los elementos del formulario:
a. Boton: es el SpinButton situado al lado derecho del número de cartel. Este botón
se encargará de cambiar aumentando o disminuyendo el valor del número de
cartel.
b. NCartel: Cuando cambie el número de cartel en este cuadro de texto, el
formulario deberá mostrar toda la información concerniente a ese anuncio
trayéndola del rango "Lista" de la hoja de cálculo.
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 botón "Si", se deberán borrar en el formulario todos los casilleros y la


foto; excepto los casilleros NCartel, Tamaño y Ubicación, así como también se
borrarán del cuadro Lista de la hoja de cálculo los datos de las columnas
correspondientes para dejar disponible el cartel (excepto NCartel, Tamaño y
Ubicación).

f. NuevoCartel: Este botón 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 número 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 botón de comando, un msgbox preguntará si
estamos seguros de querer registrar estos datos. Si se responde que "Si", se
deberán actualizar todos los datos del formulario en el cuadro Lista de la hoja de
cálculo para un cartel ya existente; y si es un nuevo cartel, este se copiara al final
de la lista.
h. Cerrar: Este botón 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.

También podría gustarte