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