Seleccionar dato de una lista

08/04/2006 - 02:31 por Carlos Gonzalez | Informe spam
Saludos.

Necesito restringir los datos de entrada de una celda a exclusivamente los
valores de una determinada lista (solo texto). He usado el comando validación
de datos en dicha celda y funciona correctamente.
El problema es que el mecanismo de busqueda dentro de la lista desplegable
es por medio de la barra de dezplazamiento y esto es dispendioso porque la
lista es muy larga. La cosa funcionaria mucho mejor si solo se mostraran en
la lista desplegable los valores que empiezen con el texto que uno le fuera
introduciendo.
Es esto posible y de serlo como podria hacerse??

Gracias de antemano

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/04/2006 - 02:00 | Informe spam
hola, Carlos !

revisa si te es de utilidad algo de lo comentado en las siguientes conversaciones: -> http://tinyurl.com/z3euj

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Necesito restringir los datos de entrada de una celda a exclusivamente los valores de una determinada lista (solo texto).
He usado el comando validacion de datos en dicha celda y funciona correctamente.
El problema es que el mecanismo de busqueda dentro de la lista desplegable es por medio de la barra de dezplazamiento
y esto es dispendioso porque la lista es muy larga.
La cosa funcionaria mucho mejor si solo se mostraran en la lista desplegable los valores que empiezen con el texto que uno le fuera introduciendo.
Es esto posible y de serlo como podria hacerse?
Respuesta Responder a este mensaje
#2 Carlos Gonzalez
09/04/2006 - 04:34 | Informe spam
Hola, Hector !

Muchas gracias por la información. me ha sido de mucha utilidad.
Una vez revisada, encuentro ajustado completamente a mis necesidades lo
comentado en las conversaciones del 15 y 16 de septiembre de 2003 con José.
El problema es que no se codigo VBA suficiente como para escribir la solución.
Podrias darme otra mano?

Muchas Gracias.

Saludos

Carlos Gonzalez


"Héctor Miguel" escribió:

hola, Carlos !

revisa si te es de utilidad algo de lo comentado en las siguientes conversaciones: -> http://tinyurl.com/z3euj

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
09/04/2006 - 09:06 | Informe spam
hola, Carlos !

... encuentro ajustado... a mis necesidades lo comentado en... 15 y 16 de septiembre de 2003 con Jose.
... problema... no se codigo VBA suficiente como para escribir la solucion...



la propuesta del dia 15 contiene los pasos y los supuestos +/- 'claros y sencillos' [segun yo] para adaptar a otras necesidades -?-

los supuestos son:
- un listado de nombres en la hoja2
- una hoja1, donde se requiere 'validar' las celdas de la columna 1 ['A']

los pasos son:
- al listado en la hoja2 definirle [o asignarle] un nombre con referencia a un rngo 'dinamico' [sigue los pasos del ejemplo]
- incrustar en la hoja1 un control combo [lista desplegable] de la barra de herramientas 'cuadro de controles' [NO la de 'formularios']
- copiar/pegar los ejemplos [procedimientos vba] EN el modulo de codigo de la hoja1
puedes 'activar' dicho modulo de codigo [p.e.] con un click-secundario sobre la etiqueta con el nombre de la hoja1 -> ver codigo...

si lo anterior no te resultara +/- 'claro y sencillo' [segun yo] :))
comentas 'que parte' es la que no se entiende ? o... que diferencias existen entre los supuestos del ejemplo y la situacion 'real' ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Carlos Gonzalez
09/04/2006 - 15:39 | Informe spam
hola, Hector !

Gracias por tu ayuda.

Segui los pasos descritos y al principio no me funcionaba. Por prueba y
error funciona bien cambiando ListadoDeNombres de "=DesRef(Hoja2!a1..." a
"=DesRef(Hoja2!a$1..."
Este cambio es correcto?

De otra parte, abusando de tu colaboracion, ¿como haria para que cuando
escriba en el combo nombres
que no estan en el listado, ademas de "plantarlos" en la celda, lo anexe al
listado (de la hoja2)?

Nuevamente, gracias

Saludos

Carlos Gonzalez



Respuesta Responder a este mensaje
#5 Héctor Miguel
10/04/2006 - 02:14 | Informe spam
hola, Carlos !

... al principio no me funcionaba. Por prueba y error funciona bien cambiando ListadoDeNombres
de "=DesRef(Hoja2!a1..." a "=DesRef(Hoja2!a$1..." Este cambio es correcto?



al definir este tipo de nombres con referencia a rangos 'dinamicos' [o de/crecientes], se debe tomar en cuenta:
-> cual es la celda activa [por si necesitas usar multi-rangos dinamicos segun dicha celda activa]
en este caso [de hecho] seria mejor si cambias todas las referencias a rangos a referencias 'absolutas' [p.e.]
=dsesref(hoja2!$a$1,,,contara(hoja2!$a:$a))

... como haria para que cuando escriba en el combo nombres que no estan en el listado
ademas de "plantarlos" en la celda, lo anexe al listado (de la hoja2)?



agrega unas lineas en el evento '_lostfocus' del combobox en el modulo de codigo de la hoja1 [p.e.]
' el combo 'se vacia' [invariablemente] al 'terminar' la operacion '
Private Sub ComboBox1_LostFocus()
ComboBox1.ListFillRange = ""
ComboBox1.LinkedCell = ""
ComboBox1 = ""
' si el usuario introduce un dato 'nuevo'... lo agregamos al ListadoDeNombres '
If IsEmpty(ActiveCell) Then Exit Sub
With Worksheets("Hoja2").Range("ListadoDeNombres")
If Application.CountIf(.Offset, ActiveCell) = 0 Then _
.Offset(.Rows.Count).Resize(1, 1) = ActiveCell
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida