Buscar valores en lista de datos y devolver lista

A ver si me podéis ayudar con un tema que tengo en el trabajo. A ver si se me explicar de forma correcta para que me entendáis.
Trabajo con dos hojas, en la Hoja2 tengo los datos con los que se alimenta la Hoja1. Os pongo un ejemplo de lo que quiero hacer.
En la Hoja2 tengo un listado de Provincias el cual se me muestra en la Hoja1 en una lista desplegable en el campo Provincias.
Ejemplo:
A
Provincias
Granada
Huelva
Sevilla
Cádiz
Córdoba
Málaga
Jaén
Almería
.
En la Hoja2 tengo una tabla que me relaciona provincias con localidades.
Ejemplo:
C D
Provincias Localidades
Granada Granada
Granada Almuñécar
.. .
Huelva Huelva
Huelva Punta Umbría
Huelva Rosal de la Frontera
Huelva Encinasola
Huelva San Juan del Puerto
..
Y ahora viene lo que quiero hacer.
Tengo un campo en la Hoja1 que se llama Localidades, quiero que cuando se seleccione en el campo Provincias de la Hoja1 una provincia, en el campo Localidades de la Hoja1 aparezca una lista desplegable con todas las localidades que aparecen en la Hoja2 cuya provincia es la seleccionada en el campo Provincia de la Hoja1.
Siguiendo el ejemplo anterior, lo que deseo es que al seleccionar en el campo Provincia me salga una lista desplegable con todas las provincias (eso se hacerlo) y que cuando selecciono por ejemplo Huelva, en el campo de Localidades me salga una lista desplegable con todas las localidades que hay en Huelva, en otras palabras, que me muestre una lista desplegable con todos los datos donde en la columna C de la Hoja2 encuentre Huelva.
Muchas gracias de antemano. Espero su respuesta a la mayor brevedad posible ya que me corre mucha prisa.

1 Respuesta

Respuesta
1
Tu pregunta es por demás interesante, y se puede resolver mejor utilizando la Validación de Datos.
.
Para el caso, puedes aplicar la siguiente solución.
=
Lista Desplegable Dependiente
=
Considera que la elección de la Provincia ejecuta el macro FILTRO, el cual tiene el siguiente código, y funciona con los datos que están en la Hoja 2:
-
Sub FILTRO()
'
' FILTRO Macro
' Ejecuta el filtrado de localidades por provincia
'
Range("hoja2!C:D").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"hoja2!F1:F2"), CopyToRange:=Range("hoja2!H1:I1"), Unique:=False
Sheets("Hoja1").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "1"
Range("C1").Select
End Sub
-
Con validación de datos -como lo mencioné- es mucho más fácil.
En la Hoja 2:
1. Capturas la lista de PROVINCIAS.
2. Capturas la lista de LOCALIDADES de cada provincia.
3. Asignas NOMBRE DE RANGO a cada lista, esto es: a la lista de PROVINCIAS, le das el nombre de PROVINCIAS; a la lista de localidades de Huelva, le das el nombre de HUELVA y así, sucesivamente.
En la Hoja 1:
4. En la celda abajo del titulo que corresponda a PROVINCIA, introduces "Validación de datos": Datos - Validación de Datos; permites Lista, y defines Origen como "=PROVINCIAS", sin las comillas y con el signo de igualdad al inicio. Toma nota de la dirección de esta celda, la cual utilizaremos con el nombre CELDA_PROVINCIA en el siguiente paso.
5. En la celda abajo del titulo que corresponde a LOCALIDAD, introduces "Validación de datos": Datos - Validación de Datos; permites Lista, y defines Origen como "=INDIRECTO(CELDA_PROVINCIA)", igualmente, sin las comillas y con el signo de igualdad al inicio.
-
La dificultad de este método, radica en que es necesario crear tantos Nombres de Rango, como Provincias exista. La forma más rápida de hacerlo, es: seleccionando todas las localidades de una PROVINCIA, cuyo nombre está al inicio de la lista, (el cual no se selecciona), y ejecutando el comando "Crear desde la Selección", eligiendo la casilla "Fila Superior" como nombre de rango.
-
Aquí está el archivo:
=
Validación de datos.
=

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas