Verificar la validez del valor del Combobox en Excel VBA
Resuelto
zabouall
Mensajes publicados
6
Estado
Miembro
-
lermite222 Mensajes publicados 9042 Estado Colaborador -
lermite222 Mensajes publicados 9042 Estado Colaborador -
Hola,
he implementado un combobox con una lista de valores. He elegido la propiedad fmStyleDropDownCombo, que permite la entrada manual de valores.
Quiero asegurarme de que el valor ingresado sea válido para no generar un error. Me gustaría que aparezca una advertencia.
Creo que hay que usar el evento "'Change", pero no sé cómo hacerlo.
¡Gracias por tu ayuda!!
he implementado un combobox con una lista de valores. He elegido la propiedad fmStyleDropDownCombo, que permite la entrada manual de valores.
Quiero asegurarme de que el valor ingresado sea válido para no generar un error. Me gustaría que aparezca una advertencia.
Creo que hay que usar el evento "'Change", pero no sé cómo hacerlo.
¡Gracias por tu ayuda!!
Configuración: Windows XP Internet Explorer 6.0
Enlaces relacionados:
- [Excel VBA] Mostrar valor del textbox
- Excel VBA: Recuperar el valor de una celda
- Excel/VBA - Rellenar ComboBox con valores
- ComboBox: Valor a mostrar a partir de un rango definido por nombre
- Asignar un valor a una opción de Combobox en VBA
- VBA Excel - Recuperar un valor contenido en una celda combinada
1 respuesta
-
Para probar el texto del combo no es tan simple como dices.
Coloca este código en la hoja del combo
Dim EditLigne As Boolean
Private Sub ComboBox1_Change() If ComboBox1.ListIndex = -1 Then '-1 cuando la línea es editada EditLigne = True End If End Sub
Luego hay dos soluciones posibles o ambas juntas
Primera solución, el usuario debe pulsar enter para validar su modificación.Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Txt As String 'Para probar la pulsación de la tecla Enter. If KeyCode = 13 And EditLigne Then 'verificar el texto del combo. Txt = ComboBox1.Text Stop 'si está bien validar '... ComboBox1.AddItem Txt EditLigne = False End If End Sub
Segunda solución, la prueba se realiza cuando el usuario selecciona algo distinto al combo.Private Sub ComboBox1_LostFocus() 'Para no probar la pulsación de la tecla Enter. 'Probar al salir del combo If EditLigne Then 'verificar el texto del combo. Txt = ComboBox1.Text Stop 'si está bien validar '... ComboBox1.AddItem Txt EditLigne = False End If End Sub
Aquí hay dos soluciones posibles.
¡Hasta luego!
--
La experiencia instruye más seguramente que el consejo. (André Gide)