Combobox solo numérico

Tengo un combobox que se llena con el campo cedula de una tabla de datos en excel, el combobox me permite digitar la cedula y me trae la que necesito, pero cuando dígito por error una letra me aborta del programa y esto me parece muy incomodo para el que utiliza el sistema, como puedo para que cuando escriba letras no haga nada o me muestre un aviso pero no me aborte del programa

1 respuesta

Respuesta
1

Espero poder ayudarte

Me resulta raro que aborte el programa sin ningún mensaje de error. ¿Podrías explicarme mejor de donde traes los datos y si es un combo dropdown combo o listdown combo? Eso esta en la propiedad style

De todas maneras si te puede ayudar podes anular caracteras presionados por medio del método keypress escribiendo algo así:

LPARAMETERS nKeyCode, nShiftAltCtrl

if !between(nKeyCode,48,57)
Nodefaul
Endif

Si me aclaras mejor como vienen los datos quizá podamos encontrar tu problema.

Si puedo ampliar la pregunta, y de antemano gracias por responderme, tengo una hoja con muchas columnas en la primera de ellas guardo el campo cedula, este combobox1 con este código abre la hoja y me llena el combobox

Private Sub ComboBox1_enter()
ComboBox1.Clear
Range("A4").Select
Do While Not IsEmpty(ActiveCell)
ComboBox1.AddItem ActiveCell.Value
'bajamos una fila
ActiveCell.Offset(1, 0).Select
Loop
End Sub

y me funciona bien, pero al entrar una letra, el sistema saca el error invallid date properly, lo que busco es que si se escribe alguna letra en este campo no se permita, que no la escriba o que solo acepte valores numericos

Ok. Ahora si.

Si la hoja de calculo se actualiza muy seguido podrías poner un botón "actualizar" para llenar al combo, pero no en el mismo combo.. también podría ser en el init del form

Por otro lado el código parece de visual basic y no de fox, por lo que quedaría así.

Init del formulario

with thisform

with .comboBox1

objetoExcel.range("A4").select

do while !empty(objetoExcel.activeCell)

.comboBox1.addItem(objetoExcel.activeCell.value)

objetoExcel.offset(1,0).select

Enddo

Endwith

Endwith

Con esto quedaría el combo con los valores. Lo demás lo hace solo.

Pero no llenes el combo en un evento del mismo combo.

Espero que te sirva.

Christian - Keystone

www.keystone.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas