miércoles, 18 de enero de 2012

Celda validada dependiente

Encuentro interesante el hecho de poder controlar los datos que se ingresan en una celda y con ello estandarizar nuestras plantillas; a esta técnica se le denomina validación de celdas. En esta nota trataremos el tema de listas de la opción validación de datos, a la que se accede a través de la pestaña datos.


Para explicar esta nota consideraremos ocho grupos de trabajo y cada grupo estará compuesto por tres nombres; la idea es que cuando se elija uno de los grupos de trabajo (lista validada 1), automáticamente en otra celda se pueda seleccionar cualquiera de los nombres que corresponda al grupo de trabajo elegido (lista validada 2) .

Este es el modelo:




Para crear la primera lista nos situamos en la G23 y damos click en la opción validación de datos, "criterio de validación-permitir" elegimos lista, en el campo origen elegimos el rango =$D$3:$D$10 (forma fija); para extender el rango automáticamente usamos una variante con la función Desref. Esta sería la formulación




Para la segunda lista, es decir la que dependera de la primera, nos situamos en la celda I23 y usamos la función SI de manera anidada (solo siete niveles).




Esta formulación debe ir en el campo origen del formulario de validación de celdas.

El resultado sera el siguiente:


Hay que aclarar que para la versión 2003 solo se permiten siete niveles, para la versión 2007 se permiten 64 niveles por lo que esta última ofrece mayores posibilidades.

Probé con nueve niveles para la versión 2007 y funciona muy bien.

Ahora un dellate de lujo para el modelo. Cuando se elije una opción de la primera lista, la segunda lista validada no se limpia automáticamente por lo que utilizaremos un código de Visual Basic. Accedemos al entorno con el comando Alt+F11 y en la hoja en donde esta el modelo copiaremos:



Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells = Range("G23") Then
Range("I23").ClearContents
End If
End Sub

Esto hará que automáticamente se limpie la segunda lista cada vez que elegimos un valor de la primera.






4 comentarios:

  1. Excelente aportación,quisiera saber si es posible limpiar la celda sin utilizar Visual Basic. Muchas gracias y felicidades por el blog, es muy bueno. Joana

    ResponderEliminar
  2. Hola Joana. Primero quiero agradecerte por tus comentarios; en cuanto a lo que me preguntas, la verdad es que no conozco otra forma de hacerlo sin tener que recurrir rutinas de Visual Basic.

    ResponderEliminar
    Respuestas
    1. Muy agradecida por tu pronta respuesta y seguro que no será la última vez que te pregunte, ya que estoy aprendiendo y a menudo me surgen muchas dudas. Joana

      Eliminar
  3. Con mucho gusto. Me gustaria colaborarte con lo que pueda....

    Joana. Te invito a que veas la nota acerca Controles de formulario sobre la hoja de cálculo. Un gusto, este es el link:

    http://mbexcel.blogspot.com/2012/04/nuevo-controles-de-formulario-sobre-la.html

    ResponderEliminar