Listas en Cascada Dependientes

Obed

19/04/10

Facil y rapido

Haz tu trabajo con mucha rapidez y de manera más sencilla.

Ponte en contacto.

Soporte

Resuelve todas tus dudas y recibe la mejor asesoría en en los proyectos que desarrolles.

¡Contáctanos!

Reportes

Desempéñate mejor en tus tareas con nuestros reportes en Excel.

¡Te decimos como lograrlo!

Hace algunos dias elaboré unas macros para un Arquitecto que tenian que ver la mayoría con Listas de validación en cascada, y como el día de hoy cuento con algunas horas libres y hace algunas semanas que no posteo nada en el Blog lo voy a tomar como tema.
 
Como habiamos visto anteriormente la herramienta de validación de datos de Excel es muy interesante y funcional porque sirve para delimitar los datos de captura a los usuarios en determinadas celdas.
 
Ahora le toca el turno a las listas de validación en cascada, una técnica común para llevar acabo esto es asignarle un nombre a los rangos y utilizar la función Indirecto.

El mantenimiento de los nombres de los rangos en caso de que se agregen o eliminen datos puede ser tedioso cuando el número de campos llega a ser considerable. En esta ocasión veremos un ejemplo con pocos datos, si usted necesita una lista con un volumen de datos considerable le aconsejo que use la función DESREF para crear los nombres porque facilita el mantenimiento de estos y así evitará estar renombrandolos cuando se agreguen o eliminen datos, en un siguiente post explicare en que consiste esta función.
Descarga el libro de ejemplo DV_CascadaIndirecto.xls

Para agregar los nombres selecciona el rango E2:E4 y en el cuadro de nombres escribe Marca.
Haz el mismo procedimiento para los rangos:
 G2:G5 con el nombre Renault
 G8:G10 con el nombre BMW 
 G13:G15 con el nombre Peugeot

Ahora posicionate en la celda A2, en la barra de menú ve a Datos > Validación de Datos, elige la opción Lista y en el campo origen ingresa =Marca

El siguiente paso es posicionarte en la celda B2, en la barra de menú ve a Datos > Validación de Datos, elige la opción Lista y en el campo origen ingresa la fórmula =INDIRECTO(A2)

Ahora para darle un toque de elegancia vamos a agregarle una macro de evento para que cuando el rango A2 cambie de valor el rango B2 cambie los valores dependientes.

Para agregar la macro presiona Alt-F11 y en la ventana de código de la Hoja1 pega el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Range(“A2:A2”), Target) Is Nothing And Target.Count = 1 Then
      Application.EnableEvents = False
      temp = Range(Target)(1)
      Target.Offset(0, 1) = temp
      Application.EnableEvents = True
   End If

End Sub

 
Copyright © 2022 Exceltrabajaporti.com - Todos los derechos reservados.