Combobox con doble entrada de un formulario

29/11/2008 - 17:01 por GRIEGO59 | Informe spam
Hola!

Como puedo hacer para que el valor de la fila del combobox1 pueda obtenerse
de dos formas diferentes, es decir, que pueda obtenerse buscando directamente
en la lista desplegable del Combobox1, como introduciendo algún valor en el
Textbox1.

El combobox1 esta basado en el rango a2:f3000 de una hoja de cálculo de
Excel 2003.

Los valores que escribiria en el Textbox1 serian valores unicos e
irrepetibles de la cuarta columna.

Cuando yo digito en el combobox1, valores parecidos al valor de la primera
columna, el combobox1 se ubica en las filas que comienzan por esos valores.

Yo estaba pensando hacer un codigo que para cada cambio en el Textbox1, el
Combobox1 sea igual al valor del Textbox1, pero como los valores que se
digitan en el Combobox1 tienen que ver con la primera fila y los valores del
Textbox1 tienen que ver con la cuarta fila, no me sirve.

Los valores de la primera fila estan ordenados alfabeticamente pero no son
valores unicos.

Gracias por la ayuda.

Dario.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/11/2008 - 22:46 | Informe spam
hola, Darío !

__ 1 __
... que el valor de la fila del combobox1 pueda obtenerse de dos formas
... buscando directamente en la lista desplegable del Combobox1
... introduciendo algun valor en el Textbox1...



1) copia/pega (o escribe) lo siguiente en el modulo de codigo del formulario...

Private Sub TextBox1_Change()
With ComboBox1
.Text = Application.VLookup(TextBox1 & "*", _
Range(.RowSource).Offset(, 3).Resize(, 1), 1, 0)
End With
End Sub

__ 2 _
Cuando yo digito en el combobox1, valores parecidos al valor de la primera columna
el combobox1 se ubica en las filas que comienzan por esos valores...
... los valores que se digitan en el Combobox1 tienen que ver con la primera fila
y los valores del Textbox1 tienen que ver con la cuarta fila, no me sirve...



2) re-re-lee (o revisa si fuera el caso) la propuesta a tu consulta de "propiedades de un combobox..." y...
=> (si no han cambiado "las prioridades")... establece la propiedad "TextColumn" del combobox
para que sea el numero de columna que necesites que "comande" en las pulsaciones dentro de su cuadro de texto

OJO: si estas usando el evento '_change' del combobox, deberas agregar una variable "puente" (de tipo boolean)
para que NO considere los "cambios" que vaya efectuando el evento del TextBox -???-

saludos,
hector.
Respuesta Responder a este mensaje
#2 GRIEGO59
30/11/2008 - 00:08 | Informe spam
Hola Hector!

Gracias por tu ayuda.

Voy a probar tu propuesta.

Lo que pasa es hay que registrar ventas de productos que tienen su codigo de
barra que coincide con la cuarta columna, pero como algunos productos pierden
la etiqueta o no la tienen, hay que buscarlos manualmente según su hubicación
que se muestra en la primera columna.

Entonces cuando el producto ha perdido su codigo de barra (etiqueta), uso el
combobox1 para conseguir el producto digitando su hubicación. Pero cuando
tiene código de barra, uso el textbox1.

Como tengo un código que trabaja con el número de fila del combobox1, sería
genial para no tener que modificar mis codigos que tu ptopuesta me funcione
de manera que yo pueda introducir los productos si tengo código de barra o si
no lo tengo.

Saludos,
Darío.

"Héctor Miguel" escribió:

hola, Darío !

__ 1 __
> ... que el valor de la fila del combobox1 pueda obtenerse de dos formas
> ... buscando directamente en la lista desplegable del Combobox1
> ... introduciendo algun valor en el Textbox1...

1) copia/pega (o escribe) lo siguiente en el modulo de codigo del formulario...

Private Sub TextBox1_Change()
With ComboBox1
.Text = Application.VLookup(TextBox1 & "*", _
Range(.RowSource).Offset(, 3).Resize(, 1), 1, 0)
End With
End Sub

__ 2 _
> Cuando yo digito en el combobox1, valores parecidos al valor de la primera columna
> el combobox1 se ubica en las filas que comienzan por esos valores...
> ... los valores que se digitan en el Combobox1 tienen que ver con la primera fila
> y los valores del Textbox1 tienen que ver con la cuarta fila, no me sirve...

2) re-re-lee (o revisa si fuera el caso) la propuesta a tu consulta de "propiedades de un combobox..." y...
=> (si no han cambiado "las prioridades")... establece la propiedad "TextColumn" del combobox
para que sea el numero de columna que necesites que "comande" en las pulsaciones dentro de su cuadro de texto

OJO: si estas usando el evento '_change' del combobox, deberas agregar una variable "puente" (de tipo boolean)
para que NO considere los "cambios" que vaya efectuando el evento del TextBox -???-

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
30/11/2008 - 00:43 | Informe spam
hola, Darío !

por lo que comentas (ahora) parece que sera necesario "jugar" con los offset( y resize(
para determinar en cual columna estas buscando y cual columna debe mostrarse en el combo -?-
y/o (quizas) modificar (temporalmente) la propiedad "TextColumn" del combo (segun se requiera)

(ya vez...) no todos los detalles (importantes) "salen a la luz" (desde la primer consulta) -???-
asi que, si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
... hay que registrar... productos que tienen su codigo de barra que coincide con la cuarta columna
... algunos... pierden la etiqueta... hay que buscarlos manualmente... en la primera columna.
... cuando el producto ha perdido su codigo de barra (etiqueta), uso el combobox1
... cuando tiene codigo de barra, uso el textbox1.
... tengo un codigo que trabaja con el nimero de fila del combobox1
... seria genial para no tener que modificar mis codigos que tu ptopuesta me funcione
... que yo pueda introducir los productos si tengo codigo de barra o si no lo tengo...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida