Excel me ofrece texto (autocompletar?)

15/12/2007 - 19:19 por Ignacio Perez | Informe spam
Hola a todos:
Bueno como sabeis si escribes al final de una lista segun vas escribiendo
Excel te ofrece las posibilidades que ya estan incluidas en esa lista.
yo tengo una lista donde las celdas tienen una validacion de datos y una
lista desplegable y de este modo Excel no me ofrece los valores que componen
la validacion de datos.
¿existe la posibilidad de que esto sea así?
Un saludo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/12/2007 - 22:11 | Informe spam
hola, Ignacio !

... si escribes al final de una lista segun vas escribiendo Excel te ofrece las posibilidades que ya estan incluidas en esa lista.
... tengo una lista donde las celdas tienen una validacion de datos y una lista desplegable
... de este modo Excel no me ofrece los valores que componen la validacion de datos.
existe la posibilidad de que esto sea asi?



(hasta donde se)...
- autocompletar no trabaja en conjunto con las reglas de validacion por lista
- la caracteristica de autocompletar segun entradas de lista en celdas superiores/inferiores...
(SOLO) funciona para entradas "directas" en las celdas por parte del usuario y...
-> a partir del caracter en el que excel puede diferenciar -posibles- duplicados en los primeros caracteres

te paso al final del presente un ejemplo con una alternativa (no precisamente validacion ni autocompletar en celda) y...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

para la funcionalidad que buscas, es necesario utilizar un combo de la barra de herramientas cuadro de controles
que es el objeto que cumple con esa caracteristica (mostrar coincidencias segun lo que vas escribiendo)
considerando que (de todas maneras) no te escaparias de usar codigo, podrias hacer que (p.e.) ...

- lo que se escriba en (o seleccione de) el combo, se aplique a la celda activa (siempre que sea de la columna 1 [a])
- si la celda activa NO es de la columna a, el combo NO tenga nada que seleccionar
- el rango (en la otra hoja) sea un nombre con referencia a un rango dinamico (por si lo vas a seguir (de-)creciendo)
p.e. en la otra hoja (Hoja2???)
1) Insertar -> Nombres -> Definir
2) Nombre = "ListadoDeNombres"
3) Se refiere a: => =DesRef(Hoja2!A1,,,ContarA(Hoja2!A:A))
(inclusive) podrias escribir (en el combo) nombres que NO existan en el listado (de la otra hoja) ;)
-> aun cuando los escribas (en el combo) y los plantes (en la celda activa) SEGUIRAN ausentes en el listado <-

sigue un ejemplo para lograr lo expuesto (puede mejorarse y/o adaptarse segun necesidades)

en el modulo de codigo de la hoja a la que pertenece el combo ==' el combo se llena SOLO cuando la celda activa es de la columna 1 (a)
Private Sub ComboBox1_GotFocus()
If ActiveCell.Column = 1 Then
ComboBox1.ListFillRange = "ListadoDeNombres"
ComboBox1.LinkedCell = ActiveCell.Address
Else: ComboBox1.LinkedCell = ""
End If
End Sub
' el combo se vacia (invariablemente) al terminar la operacion
Private Sub ComboBox1_LostFocus()
ComboBox1.ListFillRange = ""
ComboBox1.LinkedCell = ""
ComboBox1 = ""
End Sub
' para agilizar la entrada de datos con la tecla {Enter} (cuando en el combo)
Private Sub ComboBox1_KeyDown( _
ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
End Sub
Respuesta Responder a este mensaje
#2 Ignacio Perez
16/12/2007 - 21:16 | Informe spam
Uffff, Pues es que son 60 u 80 combos los que tendria que poner y se me hace
demasiado lo tendre que pensar, me quedo con tu macro y muchas gracias
Héctor
Un saludo

"Héctor Miguel" escribió:

hola, Ignacio !

> ... si escribes al final de una lista segun vas escribiendo Excel te ofrece las posibilidades que ya estan incluidas en esa lista.
> ... tengo una lista donde las celdas tienen una validacion de datos y una lista desplegable
> ... de este modo Excel no me ofrece los valores que componen la validacion de datos.
> existe la posibilidad de que esto sea asi?

(hasta donde se)...
- autocompletar no trabaja en conjunto con las reglas de validacion por lista
- la caracteristica de autocompletar segun entradas de lista en celdas superiores/inferiores...
(SOLO) funciona para entradas "directas" en las celdas por parte del usuario y...
-> a partir del caracter en el que excel puede diferenciar -posibles- duplicados en los primeros caracteres

te paso al final del presente un ejemplo con una alternativa (no precisamente validacion ni autocompletar en celda) y...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

para la funcionalidad que buscas, es necesario utilizar un combo de la barra de herramientas cuadro de controles
que es el objeto que cumple con esa caracteristica (mostrar coincidencias segun lo que vas escribiendo)
considerando que (de todas maneras) no te escaparias de usar codigo, podrias hacer que (p.e.) ...

- lo que se escriba en (o seleccione de) el combo, se aplique a la celda activa (siempre que sea de la columna 1 [a])
- si la celda activa NO es de la columna a, el combo NO tenga nada que seleccionar
- el rango (en la otra hoja) sea un nombre con referencia a un rango dinamico (por si lo vas a seguir (de-)creciendo)
p.e. en la otra hoja (Hoja2???)
1) Insertar -> Nombres -> Definir
2) Nombre = "ListadoDeNombres"
3) Se refiere a: => =DesRef(Hoja2!A1,,,ContarA(Hoja2!A:A))
(inclusive) podrias escribir (en el combo) nombres que NO existan en el listado (de la otra hoja) ;)
-> aun cuando los escribas (en el combo) y los plantes (en la celda activa) SEGUIRAN ausentes en el listado <-

sigue un ejemplo para lograr lo expuesto (puede mejorarse y/o adaptarse segun necesidades)

en el modulo de codigo de la hoja a la que pertenece el combo ==> ' el combo se llena SOLO cuando la celda activa es de la columna 1 (a)
Private Sub ComboBox1_GotFocus()
If ActiveCell.Column = 1 Then
ComboBox1.ListFillRange = "ListadoDeNombres"
ComboBox1.LinkedCell = ActiveCell.Address
Else: ComboBox1.LinkedCell = ""
End If
End Sub
' el combo se vacia (invariablemente) al terminar la operacion
Private Sub ComboBox1_LostFocus()
ComboBox1.ListFillRange = ""
ComboBox1.LinkedCell = ""
ComboBox1 = ""
End Sub
' para agilizar la entrada de datos con la tecla {Enter} (cuando en el combo)
Private Sub ComboBox1_KeyDown( _
ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
End Sub



Respuesta Responder a este mensaje
#3 Héctor Miguel
16/12/2007 - 23:25 | Informe spam
hola, Ignacio !

Uffff, Pues es que son 60 u 80 combos los que tendria que poner y se me hace demasiado
lo tendre que pensar, me quedo con tu macro y muchas gracias ...



es probable que existan alternativas (para los ~ 60/80 combos)
por que no expones la "problematica" completa ?
(p.e. donde va cada cosa y de que depende cada accion/lista/rango/combo/..., entre otros detalles ?)

saludos,
hector.

__ las consultas anteriores __
> ... si escribes al final de una lista segun vas escribiendo Excel te ofrece las posibilidades que ya estan incluidas en esa lista.
> ... tengo una lista donde las celdas tienen una validacion de datos y una lista desplegable
> ... de este modo Excel no me ofrece los valores que componen la validacion de datos.
> existe la posibilidad de que esto sea asi?

(hasta donde se)...
- autocompletar no trabaja en conjunto con las reglas de validacion por lista
- la caracteristica de autocompletar segun entradas de lista en celdas superiores/inferiores...
(SOLO) funciona para entradas "directas" en las celdas por parte del usuario y...
-> a partir del caracter en el que excel puede diferenciar -posibles- duplicados en los primeros caracteres

te paso al final del presente un ejemplo con una alternativa (no precisamente validacion ni autocompletar en celda) y...
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

para la funcionalidad que buscas, es necesario utilizar un combo de la barra de herramientas cuadro de controles
que es el objeto que cumple con esa caracteristica (mostrar coincidencias segun lo que vas escribiendo)
considerando que (de todas maneras) no te escaparias de usar codigo, podrias hacer que (p.e.) ...

- lo que se escriba en (o seleccione de) el combo, se aplique a la celda activa (siempre que sea de la columna 1 [a])
- si la celda activa NO es de la columna a, el combo NO tenga nada que seleccionar
- el rango (en la otra hoja) sea un nombre con referencia a un rango dinamico (por si lo vas a seguir (de-)creciendo)
p.e. en la otra hoja (Hoja2???)
1) Insertar -> Nombres -> Definir
2) Nombre = "ListadoDeNombres"
3) Se refiere a: => =DesRef(Hoja2!A1,,,ContarA(Hoja2!A:A))
(inclusive) podrias escribir (en el combo) nombres que NO existan en el listado (de la otra hoja) ;)
-> aun cuando los escribas (en el combo) y los plantes (en la celda activa) SEGUIRAN ausentes en el listado <-

sigue un ejemplo para lograr lo expuesto (puede mejorarse y/o adaptarse segun necesidades)

en el modulo de codigo de la hoja a la que pertenece el combo ==>> ' el combo se llena SOLO cuando la celda activa es de la columna 1 (a)
Private Sub ComboBox1_GotFocus()
If ActiveCell.Column = 1 Then
ComboBox1.ListFillRange = "ListadoDeNombres"
ComboBox1.LinkedCell = ActiveCell.Address
Else: ComboBox1.LinkedCell = ""
End If
End Sub
' el combo se vacia (invariablemente) al terminar la operacion
Private Sub ComboBox1_LostFocus()
ComboBox1.ListFillRange = ""
ComboBox1.LinkedCell = ""
ComboBox1 = ""
End Sub
' para agilizar la entrada de datos con la tecla {Enter} (cuando en el combo)
Private Sub ComboBox1_KeyDown( _
ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida