Formulario con un botón de Cuadro combinado (ComboBox)

Tomando en cuenta la imagen adjunta en esta sección, realice las siguientes acciones en el formulario:

Inserte un botón de [Cuadro de texto], cambie su [Name] por TxtDato.

Inserte un botón de [Comando], cambie su [Name] por CmdOk, su [Caption] por [Ok]

Inserte un botón de [Cuadro combinado] (ComboBox), cambie su [Name] por [CboDatos]

Inserte un botón de [Comando], cambie su [Name] por ]CmdNuevo], su [Caption] por [Nuevo]

Inserte un botón de [Comando], cambie su [Name] por [CmdFin], su [Caption] por [Aceptar]

Programe el botón haciendo doble clic en él e ingresando la instrucción: End

Ahora vamos a ver cuán importante es el orden que tienen los botones de control en el formulario, cuando de facilitar el ingreso de datos se refiere.

Hemos ingresado datos en un [Cuadro de texto] y, al hacer clic en un botón de [Comando], hemos transferir el contenido de dicho cuadro de texto. También pudimos haber usado la tecla [Tab] para pasar al botón de [Comando] para hacer lo mismo (siempre que el [TabIndex] del botón de comando tenga el siguiente valor al del cuadro de texto). Pero esto implica usar el teclado y luego el ratón.

Hay otra forma de realizar lo mismo: Basta con presionar dos veces la tecla [Enter] o [Intro] (siempre que el [TabIndex] del botón de comando tenga el siguiente valor al del cuadro de texto).

Por otro lado, en el ejemplo de la sesión anterior, usamos un botón de adicional para repetir el proceso, el cual nos permitía limpiar los cuadros de texto. En muchos casos esto mismo también puede hacerlo el botón de [Comando], en este caso el [Ok]. En esta ocasión, vamos a pedirle que, cuando se haga clic o se presione [Intro] en él, active el botón de [Cuadro combinado], [CboDatos] a fin de añadir el nuevo dato y luego que limpie el cuadro de texto y lo habilite para esperar el nuevo dato.

El botón [Nuevo] que hemos insertado, lo usaremos para limpiar el cuadro combinado y volver a ingresar otra lista, además de habilitar al cuadro de texto para ingresar nuevos datos.

En consecuencia, haga doble clic en el botón [Ok]. Su código debe ser el siguiente:

Private Sub CmdOk_Click()
CboDatos.AddItem TxtDato.Text
TxtDato.Text = ""
TxtDato.SetFocus
End Sub
 

La primera instrucción: La propiedad AddItem del objeto CboDatos le permite añadir a su lista, el dato o el contenido del objeto que está después de AddItem.

Pudimos haber ingresado los días de la semana directamente:

CboDatos.AddItem “Lunes”
CboDatos.AddItem “Martes”
CboDatos.AddItem “Jueves”
CboDatos.AddItem “Viernes”
CboDatos.AddItem “Sábado”
CboDatos.AddItem “Domingo”

De esta forma el cuadro combinado CboDatos contendrá la lista de los días de la semana.

Para que esto ocurra, el procedimiento correspondiente al CboDatos debería de ejecutarse en el momento que se inicia la ejecución del formulario. Es suficiente presionar [Enter] o [Intro] para activar la lista

Private Sub CboDatos_Enter()

CboDatos.AddItem "Lunes"
CboDatos.AddItem "Martes"
CboDatos.AddItem "Jueves"
CboDatos.AddItem "Viernes"
CboDatos.AddItem "Sábado"
CboDatos.AddItem "Domingo"
End Sub
 

En el caso nuestro, ingresaremos el dato en el cuadro de texto TxtDato y cada vez que presiones [Intro] dos veces, tendremos el dato en la lista. Esto se puede comprobar en todo instante.

El código para el botón de comando será el siguiente:

Private Sub CmdNuevo_Click()
CboDatos.Clear
TxtDato.SetFocus
End Sub
 

La primera instrucción permite limpiar la lista del cuadro combinado y la segunda habilita al cuadro de texto [TxtDato] para ingresar el siguiente dato.

El código completo es el siguiente:


Private Sub CmdFin_Click()
End
End Sub


Private Sub CmdNuevo_Click()
CboDatos.Clear
TxtDato.SetFocus
End Sub


Private Sub CmdOk_Click()
CboDatos.AddItem TxtDato.Text
TxtDato.Text = ""
TxtDato.SetFocus
End Sub

La siguiente imagen muestra el presente formulario

Grabe su libro como MisFormularios03, habilitado para macros. Una copia similar lo obtndrá haciendo clic aquí

Para pasar a la siguiente sesión, haga clic aquí