Tengo una serie de ComboBoxes que se rellenan según la selección ComboBox anterior. Entonces, por ejemplo, ComboBox3 se completa según el valor seleccionado en ComboBox2. El "disparador" para completar ComboBox3 es la acción DropButtonClick. Aparece un cuadro de mensaje cuando no hay ningún valor en ComboBox2. Esto está funcionando correctamente: código a continuación.

If Me.ComboBox2.ListIndex = -1 Then
    MsgBox "Please select all preceding comboboxes"
    ComboBox3.Value = ""
    Exit Sub
Else
    sh.Range("B2") = Me.ComboBox2.Value
End If

Mi problema es que una vez que aparece Message Box (como resultado de que no hay ningún valor en ComboBox2), ComboBox3 todavía muestra valores desplegables. ¿Hay alguna manera de deshacer el ComboBox3 DropButtonClick Event cuando no hay ningún valor en ComboBox2, de modo que ComboBox3 nunca caiga?

0
Chris2015 13 dic. 2016 a las 18:18

2 respuestas

La mejor respuesta

Puede cerrar inmediatamente la ventana desplegable del cuadro combinado simulando la tecla "ESC":

  MsgBox "Please select all preceding comboboxes"
  ComboBox3.Value = ""

  ' close immediately the combo's dropdown window
  SendKeys "{ESC}{ESC}" 
1
A.S.H 13 dic. 2016 a las 16:15

¿Es esto algo para ti?

If Me.ComboBox2.Value = "" Then
    ComboBox2.SetFocus
Else
    sh.Range("B2") = Me.ComboBox2.Value
End If

Cuando desee hacer clic en el botón desplegable del combobox 3, automáticamente vuelve al combobox2.

0
Mick17 13 dic. 2016 a las 15:46