Ventana emergente

14/01/2005 - 06:16 por Fabian | Informe spam
Hola a todos, estoy buscando un codigo o una funcion, que en el momento de
cargar un nombre en una lista abra una ventana emergente con los nombres de
la lista donde se está haciendo la carga, algo parecido a autocompletar,
pero que despliegue todas las posibilidades y las vaya eliminando a medida
que se van agregando letras del nombre, que se está escribiendo y tenga la
posibilidad de cargar el nombre deseado, (si se encuentra) con un clic, esto
es tal cual lo hace el editor del VBA.
Gracias.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/01/2005 - 06:34 | Informe spam
hola, Fabian !

1° [creo que] necesitas [un poco de] mas 'paciencia' ;)
[para dar tiempo -en caso necesario- de 'desarrollar/probar/...' lo que se ha de 'proponer'] ;)

... que en el momento de cargar un nombre en una lista abra una ventana emergente
con los nombres de la lista donde se esta haciendo la carga ... parecido a autocompletar,
... que despliegue todas las posibilidades y las vaya eliminando a medida que se van agregando letras [...]



en septiembre de 2003 hubo una consulta 'similar' [que pudiera aplicarse al caso que panteas]
ve si puedes 'adaptarla' a tus necesidades ;)

si cualquier duda... ¿comentas datos adicionales?
saludos,
hector.

__ consulta __
... una hoja ... columna (A) ... tengo que introducir nombres y apellidos
... para agilizar ... en otra hoja ... los posibles nombres ... y ... una validacion ... de permitir - lista [...]
... hacer que cuando empieze a escribir ... vayan apareciendo los ... que cumplan lo que hasta el momento haya escrito [...]



__ respuesta __
[hasta donde yo se] el objeto que 'cumple' con esa caracteristica es un combobox de =>cuadro de controles<considerando que [de todas maneras] no te 'escaparias' de usar codigo, podrias hacer que [p.e.] ...
-o- lo que 'se escriba en' [o seleccione d]el combo, se 'baje' a la celda activa [siempre que sea de la columna 1 ('a')]
-o- si la celda activa NO 'es' de la columna 'a', el combo NO 'tenga' nada 'que seleccionar' ;)
-o- 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))
=>si la primer celda del listado es 'titulo'... =DesRef(Hoja2!a1,1,,ContarA(Hoja2!a:a))
[solo toma nota que miseparador de argumentos es la coma ',' NO punto y coma ';']
[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 <
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 Fabian
14/01/2005 - 11:09 | Informe spam
Gracias ahora empiezo a probar el código!!!
"Héctor Miguel" escribió en el mensaje
news:#V5hLrf#
hola, Fabian !

1° [creo que] necesitas [un poco de] mas 'paciencia' ;)
[para dar tiempo -en caso necesario- de 'desarrollar/probar/...' lo


que se ha de 'proponer'] ;)

> ... que en el momento de cargar un nombre en una lista abra una ventana


emergente
> con los nombres de la lista donde se esta haciendo la carga ... parecido


a autocompletar,
> ... que despliegue todas las posibilidades y las vaya eliminando a


medida que se van agregando letras [...]

en septiembre de 2003 hubo una consulta 'similar' [que pudiera aplicarse


al caso que panteas]
ve si puedes 'adaptarla' a tus necesidades ;)

si cualquier duda... ¿comentas datos adicionales?
saludos,
hector.

__ consulta __
> ... una hoja ... columna (A) ... tengo que introducir nombres y


apellidos
> ... para agilizar ... en otra hoja ... los posibles nombres ... y ...


una validacion ... de permitir - lista [...]
> ... hacer que cuando empieze a escribir ... vayan apareciendo los ...


que cumplan lo que hasta el momento haya escrito [...]

__ respuesta __
[hasta donde yo se] el objeto que 'cumple' con esa caracteristica es un


combobox de =>cuadro de controles<> considerando que [de todas maneras] no te 'escaparias' de usar codigo,
podrias hacer que [p.e.] ...
-o- lo que 'se escriba en' [o seleccione d]el combo, se 'baje' a la celda


activa [siempre que sea de la columna 1 ('a')]
-o- si la celda activa NO 'es' de la columna 'a', el combo NO 'tenga' nada


'que seleccionar' ;)
-o- 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))
=>si la primer celda del listado es 'titulo'...


=DesRef(Hoja2!a1,1,,ContarA(Hoja2!a:a))
[solo toma nota que miseparador de argumentos es la coma ',' NO punto y


coma ';']
[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 <>
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 Fabian
14/01/2005 - 12:53 | Informe spam
Te cuento que todavia no lo puedo hacer funcionar, como vos supones es en
hoja1 y en columna 1.
Cree un UserForm1 y dentro un ComboBox1, supongo que esto es necesario?
Tienen que tener esos nombres?, aun asi no surge cuando introduzco en
columna 1.
Otro detalle
ComboBox1.ListFillRange = "ListadoDeNombres" (esta linea de codigo, es el
nombre del campo?, o sea el rango A1.

Te pido disculpas por mi falta de conocimientos elementales. Gracias.



"Fabian" escribió en el mensaje
news:OS0W$Ei#
Gracias ahora empiezo a probar el código!!!
"Héctor Miguel" escribió en el mensaje
news:#V5hLrf#
> hola, Fabian !
>
> 1° [creo que] necesitas [un poco de] mas 'paciencia' ;)
> [para dar tiempo -en caso necesario- de 'desarrollar/probar/...' lo
que se ha de 'proponer'] ;)
>
> > ... que en el momento de cargar un nombre en una lista abra una


ventana
emergente
> > con los nombres de la lista donde se esta haciendo la carga ...


parecido
a autocompletar,
> > ... que despliegue todas las posibilidades y las vaya eliminando a
medida que se van agregando letras [...]
>
> en septiembre de 2003 hubo una consulta 'similar' [que pudiera aplicarse
al caso que panteas]
> ve si puedes 'adaptarla' a tus necesidades ;)
>
> si cualquier duda... ¿comentas datos adicionales?
> saludos,
> hector.
>
> __ consulta __
> > ... una hoja ... columna (A) ... tengo que introducir nombres y
apellidos
> > ... para agilizar ... en otra hoja ... los posibles nombres ... y ...
una validacion ... de permitir - lista [...]
> > ... hacer que cuando empieze a escribir ... vayan apareciendo los ...
que cumplan lo que hasta el momento haya escrito [...]
>
> __ respuesta __
> [hasta donde yo se] el objeto que 'cumple' con esa caracteristica es un
combobox de =>cuadro de controles<> > considerando que [de todas maneras] no te 'escaparias' de usar codigo,
podrias hacer que [p.e.] ...
> -o- lo que 'se escriba en' [o seleccione d]el combo, se 'baje' a la


celda
activa [siempre que sea de la columna 1 ('a')]
> -o- si la celda activa NO 'es' de la columna 'a', el combo NO 'tenga'


nada
'que seleccionar' ;)
> -o- 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))
> =>si la primer celda del listado es 'titulo'...
=DesRef(Hoja2!a1,1,,ContarA(Hoja2!a:a))
> [solo toma nota que miseparador de argumentos es la coma ',' NO punto y
coma ';']
> [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 <> >
> 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
#4 Héctor Miguel
14/01/2005 - 21:35 | Informe spam
hola, Fabian !

... todavia no lo puedo hacer funcionar ... es en hoja1 y en columna 1.
Cree un UserForm1 y dentro un ComboBox1, supongo que esto es necesario?


_____
=> no se ocupa el formulario... [revisando los antecedentes de la respuesta...]
se utiliza un 'combobox' [de la barra de herramientas 'cuadro de controles']
->incrustado<- en la hoja de calculo [disculpa pero... se 'quedo' en los 'antecedentes'] :(

Tienen que tener esos nombres?, aun asi no surge cuando introduzco en columna 1.


_____
=> tampoco 'tienen porque' ser [precisamente] los nombres utilizados en 'el ejemplo'
[solo 'asegurate' que el que sea que designes, tambien 'lo apliques' por codigo al 'ListFillRange']

Otro detalle: ComboBox1.ListFillRange = "ListadoDeNombres"
... (esta linea de codigo, es el nombre del campo?, o sea el rango A1.


_____
=> es el nombre [de tu preferencia] que hubieras utilizado/asignado ->a la hoja/listado<- 'del origen'
[segun los procedimientos 'sugeridos' en el ejemplo del mensaje anterior]

¿comentas con las correcciones/adaptciones del presente?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Fabian
18/01/2005 - 04:07 | Informe spam
Sos un genio.
Funciona perfecto gracias.
"Héctor Miguel" escribió en el mensaje
news:uyXZein#
hola, Fabian !

> ... todavia no lo puedo hacer funcionar ... es en hoja1 y en columna 1.
> Cree un UserForm1 y dentro un ComboBox1, supongo que esto es necesario?
_____
=> no se ocupa el formulario... [revisando los antecedentes de la


respuesta...]
se utiliza un 'combobox' [de la barra de herramientas 'cuadro de


controles']
->incrustado<- en la hoja de calculo [disculpa pero... se 'quedo' en


los 'antecedentes'] :(

> Tienen que tener esos nombres?, aun asi no surge cuando introduzco en


columna 1.
_____
=> tampoco 'tienen porque' ser [precisamente] los nombres utilizados en


'el ejemplo'
[solo 'asegurate' que el que sea que designes, tambien 'lo apliques'


por codigo al 'ListFillRange']

> Otro detalle: ComboBox1.ListFillRange = "ListadoDeNombres"
> ... (esta linea de codigo, es el nombre del campo?, o sea el rango A1.
_____
=> es el nombre [de tu preferencia] que hubieras utilizado/asignado ->a la


hoja/listado<- 'del origen'
[segun los procedimientos 'sugeridos' en el ejemplo del mensaje


anterior]

¿comentas con las correcciones/adaptciones del presente?
saludos,
hector.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida