cargar cuadro lista

19/06/2004 - 13:42 por fernando | Informe spam
Tengo un control 'cuadro de lista' que cargo desde un rango determinado de
una hoja y funciona correctamente. Me gustaría cargar los datos para el
cuadro de lista desde variables (las que se crean desde el menú
Insertar-Nombre-Definir) ¿Es posible hacerlo?
Gracias

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
19/06/2004 - 15:29 | Informe spam
"fernando" escribió en el mensaje news:%
Tengo un control 'cuadro de lista' que cargo desde un rango determinado de
una hoja y funciona correctamente. Me gustaría cargar los datos para el
cuadro de lista desde variables (las que se crean desde el menú
Insertar-Nombre-Definir) ¿Es posible hacerlo?
Gracias





En realidad, no se les suele denominar variables, sino rangos con nombre. Respecto a lo que preguntas, si se trata de un cuadro de lista incrustado en la hoja de cálculo, hay dos posibilidades:
- si lo has creado desde la opción "Cuadro de controles", tendrás que poner en la propiedad ListFillRange del cuadro de lista el nombre del rango. Esto lo puedes hacer entrando en modo de diseño, click derecho sobre el cuadro de lista, Propiedades.
- si lo has creado desde la opción "Formulario", haz click derecho sobre el cuadro de lista, solapa "Control", y pon el nombre del rango en "Rango de entrada".

Si se tratara de un cuadro combinado en un formulario, habría que hacerlo por código. Si fuera esto, dínoslo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#2 Fernando Arroyo
19/06/2004 - 16:29 | Informe spam
No sé por qué he puesto lo del código. Lo que quería decir es que si el cuadro de lista está en un formulario, la propiedad que hay que usar es RowSource.
Respuesta Responder a este mensaje
#3 fernando
19/06/2004 - 18:00 | Informe spam
Gracias Fernando, pero no es eso.
Lo he creado desde la opcion Formulario. Sé que podría darle un nombre al
rango que utilizo para cargar el cuadro de lista, en vez de especificarlo
directamente, pero eso no es lo que quiero. Lo que quiero es cargar el
'cuadro de lista' con valores contenidos en variables (las que se definen en
el menú Insertar-Nombre-Definir).
Ejemplo: Defino las variables Texto1 = "madrid", Texto2 = "barcelona",
Texto3 = "valencia". Lo que quiero es utilizar estas variables para cargar
el cuadro de lista.
Gracias de nuevo.



"Fernando Arroyo" escribió en el mensaje
news:%
"fernando" escribió en el mensaje
news:%
Tengo un control 'cuadro de lista' que cargo desde un rango determinado de
una hoja y funciona correctamente. Me gustaría cargar los datos para el
cuadro de lista desde variables (las que se crean desde el menú
Insertar-Nombre-Definir) ¿Es posible hacerlo?
Gracias





En realidad, no se les suele denominar variables, sino rangos con nombre.
Respecto a lo que preguntas, si se trata de un cuadro de lista incrustado en
la hoja de cálculo, hay dos posibilidades:
- si lo has creado desde la opción "Cuadro de controles", tendrás que poner
en la propiedad ListFillRange del cuadro de lista el nombre del rango. Esto
lo puedes hacer entrando en modo de diseño, click derecho sobre el cuadro de
lista, Propiedades.
- si lo has creado desde la opción "Formulario", haz click derecho sobre el
cuadro de lista, solapa "Control", y pon el nombre del rango en "Rango de
entrada".

Si se tratara de un cuadro combinado en un formulario, habría que hacerlo
por código. Si fuera esto, dínoslo.
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#4 Héctor Miguel
20/06/2004 - 03:55 | Informe spam
¿que tal, chcos? [perdon... por 'meter la nariz' donde no me llaman] :))

fernando escribio en el mensaje
... creado desde ... Formulario ... podria darle un nombre al rango que utilizo para cargar el cuadro [...]
... Lo que quiero es cargar el 'cuadro de lista' con valores contenidos en variables
... (las que se definen en el menu Insertar-Nombre-Definir).
... Texto1 = "madrid", Texto2 = "barcelona", Texto3 = "valencia".
... quiero ... utilizar estas variables para cargar el cuadro de lista.



existen [al menos] dos formas de 'llenar' un cuadro de lista [o combo] de la barra de herramientas 'formularios'...
1.- usando la propiedad 'rango de entrada' [ListFillRange] del formato del control [ControlFormat] =>click-derecho< y 'asignandole' un objeto =>rango<= [ya sea 'nombrado' o la referencia de su/s celda/s]
2.- [por codigo] con el metodo 'AddItem' usando [como objeto] el 'ControlFormat' del objeto 'Shape'

considerando que el metodo 1 [el 'tradicional'] es precisamente el que NO quieres usar ... :(
'pero'... quieres 'aprovechar' =>objetos nombre<= [insertar/nombre/definir]... solo 'nos queda' la opcion 2 [macros] :(
[dicho sea... 'de paso'] los objetos nombre NO 'tienen por que' hacer referencia 'exclusivamente' a objetos 'rango' ;)
[practicamente] 'cualquier cosa' que 'normalmente' puede introducirse en una celda... 'sirve' [tambien] a los nombres ;)
valores fijos [texto o numero], referencias, constantes, formulas, funciones, etc.

suponiendo que tu cuadro de lista se llama 'Lista desplegable 1'... te expongo dos 'formas'...
saludos,
hector.

macros en un modulo de codigo 'normal' ==1.- si quieres 'aprovechar' los nombres que ya has definido [insertar/nombre/definir]
es necesario 'omitir' las comillas y el signo '=' [y... 'filtrarlos' por si hubiera 'otros' nombres] ;)
Sub Nombres_a_Combo()
Dim Nombre As Name
With ActiveSheet.Shapes("Lista desplegable 1").ControlFormat
.RemoveAllItems
For Each Nombre In Names
If Left(Nombre.Name, 5) = "Texto" Then .AddItem Mid(Nombre, 3, Len(Nombre) - 3)
Next
End With
End Sub

2.- podrias 'omitir' el uso de objetos nombre y 'llenar' el combo desde una 'matriz' [p.e.]
Sub Llenar_Combo()
Dim Listado As Variant, Sig As Integer
Listado = Array("madrid", "barcelona", "valencia")
With ActiveSheet.Shapes("Lista desplegable 1").ControlFormat
.RemoveAllItems
For Sig = LBound(Listado) To UBound(Listado)
.AddItem Listado(Sig)
Next
End With
End Sub
Respuesta Responder a este mensaje
#5 fernando
20/06/2004 - 09:53 | Informe spam
Muchas gracias, Héctor. Tu respuesta es definitiva, como siempre.



"Héctor Miguel" escribió en el mensaje
news:
¿que tal, chcos? [perdon... por 'meter la nariz' donde no me llaman]


:))

> fernando escribio en el mensaje
> ... creado desde ... Formulario ... podria darle un nombre al rango que


utilizo para cargar el cuadro [...]
> ... Lo que quiero es cargar el 'cuadro de lista' con valores contenidos


en variables
> ... (las que se definen en el menu Insertar-Nombre-Definir).
> ... Texto1 = "madrid", Texto2 = "barcelona", Texto3 = "valencia".
> ... quiero ... utilizar estas variables para cargar el cuadro de lista.

existen [al menos] dos formas de 'llenar' un cuadro de lista [o combo] de


la barra de herramientas 'formularios'...
1.- usando la propiedad 'rango de entrada' [ListFillRange] del formato del


control [ControlFormat] =>click-derecho<> y 'asignandole' un objeto =>rango<= [ya sea 'nombrado' o la
referencia de su/s celda/s]
2.- [por codigo] con el metodo 'AddItem' usando [como objeto] el


'ControlFormat' del objeto 'Shape'

considerando que el metodo 1 [el 'tradicional'] es precisamente el que NO


quieres usar ... :(
'pero'... quieres 'aprovechar' =>objetos nombre<[insertar/nombre/definir]... solo 'nos queda' la opcion 2 [macros] :(
[dicho sea... 'de paso'] los objetos nombre NO 'tienen por que' hacer


referencia 'exclusivamente' a objetos 'rango' ;)
[practicamente] 'cualquier cosa' que 'normalmente' puede introducirse en


una celda... 'sirve' [tambien] a los nombres ;)
valores fijos [texto o numero], referencias, constantes, formulas,


funciones, etc.

suponiendo que tu cuadro de lista se llama 'Lista desplegable 1'... te


expongo dos 'formas'...
saludos,
hector.

macros en un modulo de codigo 'normal' ==> 1.- si quieres 'aprovechar' los nombres que ya has definido


[insertar/nombre/definir]
es necesario 'omitir' las comillas y el signo '=' [y... 'filtrarlos'


por si hubiera 'otros' nombres] ;)
Sub Nombres_a_Combo()
Dim Nombre As Name
With ActiveSheet.Shapes("Lista desplegable 1").ControlFormat
.RemoveAllItems
For Each Nombre In Names
If Left(Nombre.Name, 5) = "Texto" Then .AddItem Mid(Nombre, 3,


Len(Nombre) - 3)
Next
End With
End Sub

2.- podrias 'omitir' el uso de objetos nombre y 'llenar' el combo desde


una 'matriz' [p.e.]
Sub Llenar_Combo()
Dim Listado As Variant, Sig As Integer
Listado = Array("madrid", "barcelona", "valencia")
With ActiveSheet.Shapes("Lista desplegable 1").ControlFormat
.RemoveAllItems
For Sig = LBound(Listado) To UBound(Listado)
.AddItem Listado(Sig)
Next
End With
End Sub

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