Repregunta sobre que 2do. combobox muestre valores según lo elegido en un 1ro

24/02/2004 - 17:01 por angel | Informe spam
Repregunta sobre Cómo se hace para que un segundo
combobox muestre sus valores según lo elegido en un
primer combobox?
Hola,
La otra vez preguntaba como hago para que un segundo
combobox muestre sus valores según lo elegido en un
primer combobox y me dieron una respuesta (Fernando
Arroyo) muy buena -la puse abajo-, pero que no me
funciona porque yo tengo las listas con la función OFFSET
Yo tengo definido desde Insert\Name en vez de la lista
con el rango Normal Ej
MiLista "=Hoja1!$D$21:$D$35"
-CON ESTO ME FUNCIONA BIEN cuando pongo: =INDIRECTO
("MiLista")-

En vez de esto yo lo tengo que definir como:
MiLista "=OFFSET(Hoja1!$D$21;;;COUNTA(Hoja1!
$D$21:$D$65000)+1)"
-CON ESTO NO ME FUNCIONA cuando pongo: =INDIRECTO
("MiLista")-

(Lo hago así con Offset porque dinámicamente se genera
una lista y esta puede ser hoy de 50 elementos y mañana
de 100)
COMO HAGO PARA QUE ME FUNCIONE TAMBIÉN CON LA FUNCION
OFFSET????

Nota: Si pongo un combo (Data\Validation) y en "Origen:
le pongo "MiLista" que tiene el Offset funciona
correctamente, pero con =INDIRECTO("MiLista") NO
FUNCIONA!!!!



Esta es la pregunta y la respuesta que había hecho:
Hay una funcionalidad que quiero implementar y que está
en un libro Excel que tengo, que el código NO está
protegido y que NO encuentro como está hecho.
Tengo un libro Excel que tiene una Hoja con un combobox
hecho con el menú Data\Validation y en la solapa Settings
tiene List y en Source una Lista definida desde
Insert\Name\Define. Ejemplo: PrimeraLista.
De acuerdo al valor elegido en este combobox que está en
C5 (Valor1, Valor2, Valor3, etc.), se muestra en D5 otro
combobox con los valores correspondientes al valor
elegido en el combobox anterior.
Es decir si en el primer combobox se elige Valor1 al
segundo combobox se le asocia la lista
SegundaListaparaValor1, si elige el Valor2 en el primer
combobox se le asocia al segundo combobox la lista
SegundaListaparaValor2.
Cómo se hace esto ya que NO encuentro el código o las
fórmulas que hacen esto por ningún lado del libro.
Cómo puedo saber cómo lo hace???

Respuesta:
Es más difícil de explicar que de hacer. Supongamos que
en el libro hay cuatro rangos con nombre:
- ListaParaC5, que hace referencia a un rango de tres
celdas que contienen
Valor1
Valor2
Valor3
- ListaParaValor1, que es el rango para la validación de
la celda D5 cuando C5=Valor1
- ListaParaValor2, que es el rango para la validación de
la celda D5 cuando C5=Valor2
- ListaParaValor3, que es el rango para la validación de
la celda D5 cuando C5=Valor3

Hay que crear un quinto rango, éste necesariamente desde
Insertar->Nombre->Definir, que vamos a llamar
ListaParaD5, y en el cuadro "Se refiere a:" hay que poner:

=INDIRECTO("ListaPara" & Hoja1!$C$5)

(suponiendo que la hoja se llamara Hoja1)

La validación para C5 debe ser "Permitir: Lista"
y "Origen: ListaParaC5"
La validación para D5 debe ser "Permitir: Lista"
y "Origen: ListaParaD5"

Y ya está. Al cambiar el valor de C5, la lista en D5
debería ser el número seleccionado.
 

Leer las respuestas

#1 Juan Pablo González
24/02/2004 - 18:49 | Informe spam
Debería ser:

=INDIRECTO(MiLista)

sin las comillas

Saludos,

Juan Pablo González

"angel" wrote in message
news:080901c3faef$6790daa0$
Repregunta sobre Cómo se hace para que un segundo
combobox muestre sus valores según lo elegido en un
primer combobox?
Hola,
La otra vez preguntaba como hago para que un segundo
combobox muestre sus valores según lo elegido en un
primer combobox y me dieron una respuesta (Fernando
Arroyo) muy buena -la puse abajo-, pero que no me
funciona porque yo tengo las listas con la función OFFSET
Yo tengo definido desde Insert\Name en vez de la lista
con el rango Normal Ej
MiLista "=Hoja1!$D$21:$D$35"
-CON ESTO ME FUNCIONA BIEN cuando pongo: =INDIRECTO
("MiLista")-

En vez de esto yo lo tengo que definir como:
MiLista "=OFFSET(Hoja1!$D$21;;;COUNTA(Hoja1!
$D$21:$D$65000)+1)"
-CON ESTO NO ME FUNCIONA cuando pongo: =INDIRECTO
("MiLista")-

(Lo hago así con Offset porque dinámicamente se genera
una lista y esta puede ser hoy de 50 elementos y mañana
de 100)
COMO HAGO PARA QUE ME FUNCIONE TAMBIÉN CON LA FUNCION
OFFSET????

Nota: Si pongo un combo (Data\Validation) y en "Origen:
le pongo "MiLista" que tiene el Offset funciona
correctamente, pero con =INDIRECTO("MiLista") NO
FUNCIONA!!!!



Esta es la pregunta y la respuesta que había hecho:
Hay una funcionalidad que quiero implementar y que está
en un libro Excel que tengo, que el código NO está
protegido y que NO encuentro como está hecho.
Tengo un libro Excel que tiene una Hoja con un combobox
hecho con el menú Data\Validation y en la solapa Settings
tiene List y en Source una Lista definida desde
Insert\Name\Define. Ejemplo: PrimeraLista.
De acuerdo al valor elegido en este combobox que está en
C5 (Valor1, Valor2, Valor3, etc.), se muestra en D5 otro
combobox con los valores correspondientes al valor
elegido en el combobox anterior.
Es decir si en el primer combobox se elige Valor1 al
segundo combobox se le asocia la lista
SegundaListaparaValor1, si elige el Valor2 en el primer
combobox se le asocia al segundo combobox la lista
SegundaListaparaValor2.
Cómo se hace esto ya que NO encuentro el código o las
fórmulas que hacen esto por ningún lado del libro.
Cómo puedo saber cómo lo hace???

Respuesta:
Es más difícil de explicar que de hacer. Supongamos que
en el libro hay cuatro rangos con nombre:
- ListaParaC5, que hace referencia a un rango de tres
celdas que contienen
Valor1
Valor2
Valor3
- ListaParaValor1, que es el rango para la validación de
la celda D5 cuando C5=Valor1
- ListaParaValor2, que es el rango para la validación de
la celda D5 cuando C5=Valor2
- ListaParaValor3, que es el rango para la validación de
la celda D5 cuando C5=Valor3

Hay que crear un quinto rango, éste necesariamente desde
Insertar->Nombre->Definir, que vamos a llamar
ListaParaD5, y en el cuadro "Se refiere a:" hay que poner:

=INDIRECTO("ListaPara" & Hoja1!$C$5)

(suponiendo que la hoja se llamara Hoja1)

La validación para C5 debe ser "Permitir: Lista"
y "Origen: ListaParaC5"
La validación para D5 debe ser "Permitir: Lista"
y "Origen: ListaParaD5"

Y ya está. Al cambiar el valor de C5, la lista en D5
debería ser el número seleccionado.

Preguntas similares