La lista desplegable (2)

Ya he añadido el código para el botón “Agregar”, la lista desplegable y el botón “Cerrar”.
Pasemos a ver todo esto.

El código que se ejecutará al hacer clic en “Cerrar” (CmdCerrar) es el botón en la parte inferior (3). Todo esto esta muy claro e intuitivo.
En la primera parte, nos encontramos con el código que se ejecutará cuando hacemos clic en el botón “Agregar” (cmdAgregar) (1).
Con la primera línea de código, ActiveWorkbook.Sheets (“Departamento”).Activate activamos la hoja de cálculo “Departamento”.
Con la segunda línea de código, Range (“A1”). Select, seleccionamos la celda A1.
Las siguientes líneas de código sirven para buscar celdas en blanco, si las encuentra, lo que hace es escribir la ruta de datos en las celdas vacías.

Do
If IsEmpty (ActiveCell) = False Then
ActiveCell.Offset (1, 0). Select
End If
Loop Until IsEmpty (ActiveCell) = True
ActiveCell.Value = txtName.Value
ActiveCell.Offset (0, 1) = cboDepartment.Value
Range (“A1”). Select
Esto es lo que hace:

Si la celda actual no esta vacia (If IsEmpty (ActiveCell) = False Then)
Entonces la siguiente fila es seleccionada (ActiveCell.Offset (1, 0). Select)
Esto se repite hasta encontrar una celda vacía (Loop Until IsEmpty (ActiveCell) = True)
Si se encuentra una celda vacía, entonces se coloca los datos del cuadro txtNombre en la celda activa:
ActiveCell.Value = txtNombre.Value
Luego salta a la derecha de la celda e inserta los datos en la lista desplegable:
ActiveCell.Offset (0, 1) = cboDepartmento.Value

Luego regresa a la celda A1 en la hoja de cálculo. (Lo cual no es del todo así, porque en realidad solo salta de vuelta a la celda A1).
Range (“A1”). Select
Ahora tienes todas las celdas vacías de nuevo (esto no necesitas hacerlo, pero lo bueno es que borra y libera todas las celdas cuidadosamente cuando los datos son escritos).
Me.txtNombre.Value = “”
Me.cboDepartmento.Value = “”

Por último, ponemos fin a la subrutina del botón cmdAgregar con:
End Sub

les13_image001_es

Luego tenemos el código de la lista desplegable (2).

Como habrás notado en el anterior código de Visual Basic (1) para el botón cmdAgregar, no hay ningún valor asignado a cboDepartmento. Lo único que hicimos fue seleccionar la celda que esta a la derecha de la celda seleccionada ActiveCell.Offset (0, 1) = cboDepartmento.Value en nuestra hoja de cálculo.
Para ello, tenemos el código que inicializa el formulario, Private Sub UserForm_Initialize ()

La primera línea repite el valor de txtNombre, o dicho de otra forma, esta línea no hace nada, porque no hay entradas para el valor.

Sin embargo, con las siguientes líneas, se determina el contenido de la lista desplegable cboDepartmento:

With cboDepartmento
. AddItem “Administración”
. AddItem “Diseño”
. AddItem “Publicidad”
. AddItem “Ventas”
End With

y el valor del campo cboDepartmento.

cboDepartmento.Value = “”

les13_image002_es

Fecha

Como último ejemplo, voy a añadir una fecha al formulario por medio del control DTPicker (1).
Este control esta disponible por defecto en la caja de herramientas, pero al hacer clic en él, se muestra una lista (2) con docenas de otros controles.
Selecciona en la lista “Fecha Microsoft y Control Selector de Tiempo” (3), y haz clic en Aceptar.
En versiones anteriores a la versión 2007, este control se llama “Control de Calendario”.
El diseño era un tanto diferente, pero el código que necesitamos para añadir VBA sigue siendo el mismo.

les13_image003_es

Una vez el calendario este agregado al formulario, haz clic en el botón “Ver” y selecciona “Código”.
En el código VBA tenemos que añadir dos líneas más de código.
La subrutina para el DTPicker ya esta agregada.
Aquí debes escribir el código Me.DTPicker1.Value = Date (1)
Luego hay que añadir una línea adicional a la subrutina del botón cmdAgregar.
Esto salta de la celda seleccionada a la siguiente celda, “ActiveCell.Offset (0, 2) = DTPicker1.Value” (2), ya que coloca este valor en la columna siguiente de la columna Departamento.
Prueba el código.

les13_image004_es

Increíble! Has completado Lección 13 INICIAR EL PROXIMO LECCIÓN