Cómo hacer para que un 2do combobox muestre valores según valor de 1er combobox?

10/02/2004 - 10:22 por angel | Informe spam
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???

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
10/02/2004 - 11:21 | Informe spam
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.

Un saludo.


Fernando Arroyo
MS MVP - Excel


"angel" escribió en el mensaje news:ddf301c3efb7$6f401470$
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 Responder a este mensaje
#2 angel
10/02/2004 - 12:45 | Informe spam
Muchas gracias!!!!
Y puedo hacer lo que me dices en tu respuesta para Valor1
y Valor2 pero que si por ejemplo en el primer combobox
(C5) el usuario elige Valor3 NO le aparezca el combobox
en D5 sino que el usuario pueda escribir libremente en
esa celda (porque en el segundo combobox defino elementos
para filtrar pero algunos no se corresponden con ninguna
lista de valores sino por ejemplo que el nombre empiece
con las letras que el usuario ponga en D5)

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.

Un saludo.


Fernando Arroyo
MS MVP - Excel


"angel" escribió


en el mensaje news:ddf301c3efb7$6f401470
$
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 Responder a este mensaje
#3 Fernando Arroyo
10/02/2004 - 21:03 | Informe spam
Si lo que quieres hacer es eliminar la validación de D5 si C5=Valor3, tendrás que pegar el siguiente código en el módulo de la hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$5" Then Exit Sub
With [D5].Validation
.Delete
If Target = "Valor3" Then Exit Sub
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=ListaParaD5"
End With
End Sub


Un saludo.


Fernando Arroyo
MS MVP - Excel


"angel" escribió en el mensaje news:decd01c3efcb$5df06120$
Muchas gracias!!!!
Y puedo hacer lo que me dices en tu respuesta para Valor1
y Valor2 pero que si por ejemplo en el primer combobox
(C5) el usuario elige Valor3 NO le aparezca el combobox
en D5 sino que el usuario pueda escribir libremente en
esa celda (porque en el segundo combobox defino elementos
para filtrar pero algunos no se corresponden con ninguna
lista de valores sino por ejemplo que el nombre empiece
con las letras que el usuario ponga en D5)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida