Crear una lista desplegable dependiendo de otra

Actualmente se crear una lista desplegable en una celda, me gustaría complicar un poco más esta opción creando una lista desplegable condicionando la celda a otro dato anterior de otra lista desplegable.
Pongo un ejemplo para aclararlo si no me he explicado bien:
Creo una lista con marcas: BMW, AUDI, ...
Creo una lista con modelos: SERIE 1, SERIE 3, A3, A4
Me gustaría que en la lista de modelos cuando en la celda anterior salga AUDI solamente figurara la lista de modelos de audi que yo defina. (A3, A4,...)
¿Se puede hacer algo parecido en este sentido?, mirando la opción de listas desplegables no encuentro nada.

1 respuesta

Respuesta
1
TEndrás que tener tantas listas como opciones, a las que asignarás un nombre de rango (menú Insertar, Nombre, Definir)
Entonces supongamos que tenés las siguientes listas:
col M = marcas (BMW, AUDI, etc),
col N = modBMW (Serie1, Serie3, etc)
col O = modAUDI (A3, A4, etc)
col P = modXX (XX1, XX2, etc)
Supongamos que en A2 tenés la primer lista de marcas.
Para B2 las opciones de validación son: Lista y en Origen esta fórmula:
=SI(A2="BMW";modBMW;SI(A2="AUDI";modAUDI;SI(A2="XX";modXX;"")))
ESta fórmula te permite hasta 7 marcas distintas. Para mayor número de opciones habrá que recurrir a una macro.
Saludos y no olvides finalizar la consulta
Elsa
PD) Más soluciones en Manual Excel, desde:
http://es.geocities.com/lacibelesdepunilla/manuales
Gracias por tu contestación Elsa, igual con 7 marcas me puedo quedar corto, ¿podrías ampliarme la información recurriendo a macros o es muy complicado?.
Gracias por tu respuesta y saludos.
Drizztosca
Entrá al Editor de macros (con Alt+F11), seleccioná de la lista de Objetos a tu izquierda, la hoja que tendrá las celdas con validación y copiá esta rutina ajustando los nombres y referencias a las tuyas:
Private Sub Worksheet_Change(ByVal Target As Range)
'la primer lista estará en col A
If Target.Column = 1 Then
Target.Offset(0, 1).Value = ""
Select Case Target.Value
'se establece un Case por cada opción de MARCA
Case Is = "BMW"
With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=modBMW"
End With
Case Is = "AUDI"
With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$H$5:$H$10"
End With
Case Is = "XX"
With Target.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=modXX"
End With
'continuar con otras marcas
End Select
End If
End Sub
Fíjate que para la 2da opción dejé un rango de celdas en lugar del nombre del rango. Esta es otra opción posible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas