Mensaje luego de no elegir un valor en combobox

Buenas, necesitaría si me podrían ayudar en lo siguiente, tengo una macro en la cual se elige de un combobox un país, el cual luego me sirve para seguir con el proceso, el problema parte de que, el combobox viene con la solapa desplegable para elegir dicho país, si no lo desplegó por default me trae un valor en blanco (o " ") por lo cual, en el caso de por error darle a aceptar y que el valor sea este la macro no me va tomar ningún país, para ello lo que pensé en un mensaje que diga "Elija un Valor" y lo repita o lo muestre siempre y cuando no se seleccione nada, el tema es que lo trate de hacer pero me genera un bucle que no termina y no me deja elegir un país .. Si me podrían ayudar seria de gran ayuda desde ya muchas gracias.. !!!

saludos

Sub lanzar_userform1()
'llamamos al userform1'
UserForm1.Show
End Sub
Public Sub UserForm_activate()
'Carga los Países en el ComboBox'
ComboBox1.AddItem "Argentina"
ComboBox1.AddItem "Chile"
ComboBox1.AddItem "Colombia"
ComboBox1.AddItem "Perú"
ComboBox1.AddItem "Puerto Rico"
ComboBox1.AddItem "Venezuela"
ComboBox1.AddItem "Barbados"
End Sub
Public Sub CommandButton1_click()
'Selecciona un País y quita el Formulario de la memoria'
valor = ComboBox1
Cells(1, 1) = valor
If valor <> "" Then
MsgBox ("Elija un Valor")
Else
End If
Unload UserForm1
End Sub

1 respuesta

Respuesta
1

Según entiendo lo que tu necesitas es evitar que se siga el proceso si no se ha elegido un país, para esto te sugiero que crees (en el userform, configurando las propiedades) el botón ACEPTAR como deshabilitado (CommandButton#.Enabled=False) y luego lo habilites en el código del Commandbutton1_Click() con esta línea: CommandButton#. Enabled=true, de este modo te aseguras que solo se pueda hacer click en ACEPTAR luego de haber elegido un valor válido. Espero esto te pueda ayudar en tu caso o, en caso contrario, amplia tu caso.

Gracias, entiendo la nueva sugerencia, en lugar de apretar el botón aceptar y me tome por error el valor "" (null), con esto el botón "Aceptar" permanece "disable" hasta que no baje y elija un país .. esto es así? 

De ser así también me sirve, el inconveniente es que agregue dicha linea y ademas cambie la propiedades del CommandButton en Enabled de True a False, y aparte agregue la siguiente linea y borre lo siguiente

Agregue:

CommandButton1.Enabled = True


Quite: (ya que con el nuevo lineamiento no lo voy a usar)

If valor <> "" Then
MsgBox ("Elija un Valor")
Else
End If

Me quedo:

Private Sub CommandButton1_click()
'Selecciona un País y quita el Formulario de la memoria'
CommandButton1.Enabled = True
valor = ComboBox1
Cells(1, 1) = valor
Unload UserForm1
End Sub

(el resto sigue igual)

Pero, cuando lo ejecuto, desplegó la barra elijo el país, el botón "Aceptar" sigue disable, y realmente no se que es lo que podría estar mal ..

desde ya muchas gracias por tu ayuda !!

Has entendido bien mi sugerencia sin embargo el error ha sido mio, la línea debes incluirla en la rutina del ComboBox1_Click() (el combobox donde eliges el país).

...

Además puedes eliminar una línea de código, modificándolo de este modo:

Cambia esto:

valor = ComboBox1
Cells(1, 1) = valor

por esto:

cells(1,1)=ComboBox1.Value

(Así puedes eliminar la variable VALOR).

Luego de esto debería andar tu código.

De 10 funciona muchísimas gracias .. y a parte tengo que mencionar la rapidez en que me respondiste .. desde ya es muy bueno que exista este tipo de foro en que se pueda ayudar al prójimo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas