Validar datos con lista de datos que están en otra hoja

Como ya hemos comentado en varias ocasiones, existe la posibilidad de emplear reglas de validación para mostrar listas desplegables.

El problema es ese mensaje de error que dice que no se pueden emplear datos de otras hojas o libros para los criterios de validación.

 

Sin embargo esto no es del todo correcto, porque sí hay una manera de tomar los datos de otra hoja. El truco consiste en haber definido un nombre para los datos que queremos que aparezcan en la lista.
Si hacemos referencia a este nombre como origen de los datos de la lista sí funcionará y aparecerán los valores de la otra hoja en nuestra lista de validación. No olvides poner el signo igual antes del nombre.

 

Esto resuelve el problema de tener que poner unas listas auxiliares en la misma hoja donde tenemos los datos, lo que no queda muy elegante pese a ser el modo en que los programadores de Excel quisieron que funcionase. Con el empleo de nombres podemos tener una hoja auxiliar con todas las listas de valores auxiliares que aparecerán en los desplegables, mientras que la hoja donde se introducen los datos queda limpia y sólo contiene las celdas donde se introducirán los datos.
 

En el archivo adjunto tienes un ejemplo de esto que te cuento.

¿necesitas más?

AdjuntoTamaño
ValidarEntreHojas.xls31 KB

Temática: 

Comentarios

Re: Validar datos con lista de datos que están en otra hoja

Imagen de giovacif

Hola pacomegia, necesito saber si me podrías ayudar, necesito saber si es posible imprimir una lista desplegable en la validación de datos del primero al último según sea al rango de una sola vez, ya que actualmente lo hago uno por uno, o sea que busco en la lista y voy cambiando de nombre y le doy imprimir, asi hasta llegar al final, pero a veces  manejo listados de hasta 150 personas, y ya te imaginaras lo cansado que se me hace hacerlo de esa forma.   Espero haberme dado a entender.   Saludos.

macro que recorra el rango de origen

Imagen de pacomegia

Bueno, se me ocurre hacer una macro que recorra las celdas del rango de origen de la validación

El rango de la validación se almacena en la propiedad Formula1 de la validación:

por ejemplo, podría ser algo parecido a esto:

Sub ValidaciónListaTodos()
  '  reemplaza el valor de la celda activa por cada uno de los valores de la lista de validación
  '  e imprime la hoja
  '  la celda activa debe ser la que contiene la regla de validación
  Dim RangoValidación As Range
  Dim Celda As Range

  Set RangoValidación = Range(Replace(ActiveCell.Validation.Formula1, "=", ""))
  ' reemplazo el signo = de la fórmula que hace referencia a las celdas
    For Each Celda In RangoValidación.Cells
      ' aquí lo que se quiera hacer con cada valor, por ejemplo:
      ActiveCell.Value = Celda.Value  ' asignamos el valor a la celda activa
      ActiveSheet.PrintOut  ' imprimimos la hoja
    Next
  Set RangoValidación = Nothing
End Sub

envios gratis a todo el mundo

Re: Validar datos con lista de datos que están en otra hoja

Imagen de pacomegia

Pues sí, esto hay que hacerlo mediante VBA.

Accede al editor de visual Basic mediante la combinación de teclas [ Alt ] [F11]

Ahí tienes el entorno de trabajo para programar.

 

¿sabes algo de esto?¿has programado antes?¿has grabado alguna macro antes?¿todo esto en totalmente nuevo para ti?

 

envios gratis a todo el mundo

Re: Validar datos con lista de datos que están en otra hoja

Imagen de visitante
No necesariamente, puedes utilizar una Macro, para realizar este proceso. Puedes utilizar la función INDIRECTO que haga referencia a la lista de datos en otra hoja. Ejemplo: =INDIRECTO("sexo") sexo: es un rango con nombre que hace referencia a celdas de otra hoja: hoja1!A1:A2