Ya hemos visto que la función Validación de Datos de Excel (Datos---Validación de Datos) permite controlar los datos que son introducidos en una celda. Una de las posibilidades es crear una lista desplegable de la cual el usuario puede elegir el valor a introducir en la celda.
En una nota anterior hemos tratado como evitar duplicados con validación con validación de datos. En otra hemos mostrado un modelo para asignar operarios a máquinas, de manera que cada operario asignado "desaparezca" de la lista desplegable.
En esta nota mostraremos otras posibilidades de crear listas desplegables dependientes.
Supongamos por
ejemplo, que queremos de acuerdo al país elegido en una celda, la lista desplegable en la celda contigua muestre solamente ciudades de ese país.
Los pasos a seguir son:
1 – creamos nombres que contengan la lista de los países y las listas de las ciudades de cada uno de los países. Es importante que el nombre del rango que contiene las ciudades sea idéntico al nombre del país.
2 – en la celda de los países aplicamos validación de datos, con la opción "lista" usando el nombre "países"

3 – en la celda de las ciudades aplicamos validación de datos, también con la opción "lista", pero en este caso aplicamos la función INDIRECTO para crear una referencia dinámica al nombre que contiene la lista:
=INDIRECTO($A$5)
Este es el motivo que el nombre del rango de las ciudades coincida con el nombre del país
A partir de este momento, al elegir un nombre de país en la celda de países, la lista de validación de datos se ajusta al nombre que contiene los nombre de las ciudades de ese país
Categorías: Varios_
Technorati Tags: INDIRECTO, Validacion de Datos en Excel









113 comentarios:
Hola quisiera utilizar esta herramienta en un campeonato en el cual voy ingresando los datos fecha a fecha segun los jugadores que juegan y que estos saldran de una lista desplegable que dependeran de los equipos q tambien saldran de una lista despegable, el formato es practicamente el mismo que pones en el ejemplo el problema radica que lo quiero hacer es una plantilla que me servira para otros ejemplos y los nombres ya no seran los mismos porque los nombres de los equipos cambiaran y obviamente los nombres de los rangos tambien y quisiera evitar estar cambiando esto, gracias por tu ayuda.
Hola, lo que tenes que hacer es usar rangos dinàmicos en la definición de los nombres. Por ejemplo, en lugar de definir paises=Hoja1!$E$4:$E$7
definis el nombre como
paises (suponiendo que el rango empieza en la celda E1) como
paises=DESREF(E1,0,0,contara(E:E)-1,1). Lo mismo con los otros nombres.
Esta definición es dinámica y a medida que agregues nombres a la lista, iran apareciendo en la lista desplegable.
Podés leer una explicación sobre rangos dinámicos en esta nota.
Sobre la función DESREF podés leer esta nota
Hola Jorge, muy buenos tus ejemplos, te felicito por tu gran contribucion, Necesito, si está en tus posibilidades ayudarme a resolver esto, tengo una lista con 2 columnas, en la columna 1 el nombre del pais y en la otra el codigo del pais, Por ejemplo: Venezuela y en la otra columna ve, Colombia co, Argentina ar, Bolivia bo y asi sucesivamente, para que el usuario escoja la frase con el nombre del pais pero luego de la seleccion quede en una columna, el valor del codigo del pais que es el que me iteresa como programador, y al usuario pues, le interesaria la frase del nombre del pais ya que es entendible para ellos.
La forma más sencilla de hacerlo sería tener una tabla con los nombres de los países en una columna y las abreviaciones en la columna contigua. Luego, en la celda contigua a la celda donde se elige el país pones una fórmula con la función BUSCARV:
=BUSCARV(celda con nombre de país;lista de países;2;0)
Jorge: antes que nada muchas gracias por tener este blog, me ha salvado las papas varias veces...
Te consulto lo siguiente, quiero usar una lista desplegable que tome los datos (de la lista) desde otro archivo de excel que tiene la base... se puede? como? El archivo de la base, debe estar abierto para que se despliegen los contenidos de la lista?
Muchas gracias, saludos. Damian.
Hola Damián,
el método de las listas desplegables dependientes se basa en la función INDIRECTO. Esta función no trabaja cuando con archivos cerrados.
En esta nota sobre INDIRECTO con cuadernos cerrados puedes ver algunas soluciones a este problema.
Me ha servido bastante tu blog, gracias!!!. Mi inquietud: en el ejemplo de los países y las ciudades, después de haber elegido un país y haber elegido una ciudad correspondiente a ese país, y luego al elegir otro país, en la celda de las ciudades queda la ciudad del país anteriormente elegido. Existe alguna manera para que cuando se elige un nuevo país se borre la celda de ciudades para que quede la celda en blanco para poder elegir las nuevas ciudades?
Hola,
lo único que se me ocurre es usar un evento (macro) ligado a la hoja.
Para nuestro ejemplo:
1 - en la pestaña Hoja1 haces clic con el botón derecho del mouse y abres Ver Código
2 - en el módulo de la hoja pones este código
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Range("A5"), Target).Address = Range("A5").Address Then
Range("B5").ClearContents
End If
End Sub
Lo que hace este evento es que cada vez que hay un cambio en el valor de A5 (el país) el contenido de la celda B5 es borrado.
Gracias Jorge!!! eres un genio!!
Excelente la página, me has ayudado un montón...te pasaste
Hola no se si se pueda hacer lo siguiente. Tengo una lista de proveedores en un combobox (aprox 200) cada proveedor tiene aprox 50 ranchos y cada rancho tiene aprox 20 parcelas. quisiera que al momento de seleccionar el proveedor en otro combobox me ponga los ranchos del proveedor seleccionado y al momento de seleccionar un rancho me ponga las parcelas del rancho seleccionado. se puede lograr???? gracias
Dado la cantidad de datos, habría que hacerlo con Vba. Las combo boxes tendrían que llenarse en forma dinámica al seleccionar el proveedor.
Con la técnica descrita en la nota no se puede debido a la cantidad de combinaciones posibles.
Querría añadir a una hoja de cálculo una opción de reinicio, es decir que presionando un botón se borren los datos introducidos con anterioridad y que en las listas deplegables aparezca la primera opción.
Con el borrado de celdas no tengo problema, pero no se como puedo hacer que las listas desplegablas cambien. Tampoco se si es posible lo que estoy intentando.
Gracias de antemano por atender mi consulta, espero que me pueda ayudar.
PD: Si esta dida ya está resulta diganme donde, pues no la he encontrado.
PPD: Esta pagina está curradisima y es de muchisima utilidad. Todo el trabajo que lleva ha debido ser inmenso y creo que agradecer este aporte es lo mínimo que puedo hacer
Quiero poner un botón de reinicio en una hoja de excel, es decir, cunado se presione dicho botón los datos introducidos con anterioridad deben borrarse y las listas desplegables situarse en el primer valor de las misma. Para borrar los datos no he tenido problema, el asunto es que no se si se puede recolocar una lista desplegable ni como hacerlo si se puede.
Muchas gracias por tu atención y por tu estupenda página.
Hola,
explícame un poco más que quieres decir con "no se como puedo hacer que las listas desplegablas cambien".
Gracias por los elogios.
Veamos, a ver si me explico. En mi hoja de cálculo hay varias listas desplegables, lo que quiero hacer es que cuando se "reinicie" el programa en estas listas aparezca la primera de las opciones.
Por ejemplo, en una de ellas aparecen las opciones: "Codo", "Codo redondeado", "T", "Otro" y una primera opción en blanco. Lo que quiero hacer es que cuando el usuario presione el botón Reinicio el valor de esta celda sea el valor en blanco.
Espero haberme explicado correctamente, gracias por tu tiempo y atención.
PD:Disculpame por haber escrito dos mensaje iguales, pero es que no me di cuenta de que tenías que verla pregunta antes de publicarla, cosa que me parece correcta, y al no ver mi mensaje en el blog pensé que me había equivocado.
SI es que he entendido tu pregunta, se puede hacer fácilmente. En nuestro ejemplo, basta con poner esta macro en un módulo de VBe y ligarla a un botón
Sub reinicio()
Range("A5:B5").ClearContents
End Sub
Muchas gracias, lo he probado y a funcionado a la perfección.
Hola a Jorge. Primeramente felicitarte por el blog, me parece estupendo.
Quisiera saber si puedes ayudarme con el siguiente problema. Necesito que excel me devuelva en una celda un valor establecido obedeciendo a dos criterios de selección, el problema lo tengo al crear la formula de condicionantes, es demasiado larga. Me explico mejor.
Tengo por una parte una lista con todas las provincias de españa en la columna A, por otra tipos de transporte en la columna B (3 ejes, trailer, agencia...) y en las columnas C, D... tengo el coste de transporte para cada tipo de transporte y provincia, os pongo un ejemplo:
A B C D
1 Prov. / Transp./ 3EJES/ TRAILER
2 Alaba / 3 EJES / 25 / 30
3 Albacete/TRAILER/ 15 / 20
4 ....
Mi intención es hacer dos listas desplegables, una con las provincias y otra con el tipo de transporte, además del nº de viajes a realizar, de manera que cuando seleccione "Albacete/trailer" me devuelva el valor establecido (20 en el ejemplo) para luego multiplicarlo en otra celda por el nº de viajes a realizar y más adelante sumarlo al precio de coste de los materiales a enviar.
He estado probando en base al ejemplo tuyo de los países pero me hago un lío a la hora del planteamiento.
Gracias de antemano.
Jorge, caí en tu blog por casualidad y la verdad que los ejemplos son clarísimos y de mucha ayuda. Estuve buscando bastante y necesitaria saber como resolver esta cuestion que se me presenta y te paso a detallar:
Estoy armando una planilla para sacar la composicion de costos de un producto. Tengo diferentes conceptos en una tabla bajo el nombre "conceptos" (madera, adhesivos, etc.)
Elegido el concepto por lista desplegable, mediante la funcion INDIRECTO (sacado de tu blog) asocio otra lista desplegable de items (ejemplo, para madera: Madera de 1x2; Madera de 1x3, etc.).
El tema es que yo ahora necesitaria que segun el item, se me asociaran 2 celdas mas: Unidad de Medida y Costo.
Tanto los datos del item, como unidad de medida y costo, las tengo en otra tabla definida bajo "madgen" para el concepto Madera por ejemplo.
Mi idea es variar tanto conceptos como item segun el producto en cuestion, motivo por el cual no puedo usar la funcion BUSCARV, mejor dicho, podria usar la funcion BUSCARV en tanto supiese como ingresar un condicional para la matriz de busqueda, segun el concepto del item.
No sé si estoy siendo muy claro. Cualquier cosa, te dejo mi mail ya que tengo el archivo de prueba o bien para que me contactes. (matiaschiara@gmail.com)
Desde ya, te agradezco el tiempo que te tomas en todas las explicaciones, tanto del blog, como personales.
Saludos
Matias
Salva y Matías
envíenme una copia del archivo para que me pueda hacer una idea más clara del planteo
Por favor, usen el mail jorgedun@gmail.com
Estimado Jorge,
Excelente tu blog, de gran utilidad para miles de personas. Respecto al ejemplo de paises y ciudades, diste una solucion, para que cuando se cambia el nombre del pais, se ponga blanco en el campo de ciudad. El codigo funciona perfecto.
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Range("A5"), Target).Address = Range("A5").Address Then
Range("B5").ClearContents
End If
End Sub
Mi duda es como puedo ocupar el objeto, para que me limpie dinamicamente de acuerdo a la posicion en la que me encuentro, porque el codigo indicado solo funciona para una celda en particular.
Hola Marcelo
lo que hace el código es borrar el contenido de la celda dependiente de A5. Si quieres que limpie otra celda sólo tienes que cambiar el parámetro correspondiente.
No se si apareció mi comentario, pero no lo veo.
Quiero poder copiar las fórmulas pero sin tener que actualizar una por una la fórmula.
Ahora mismo en el ejemplo copiandolo, aunque yo elija Bolovia me siguen apareciendo las ciudades españolas.
¿Como puedo hacer para actualizar toda la columna automaticamente?
Lo que tienes que hacer es utilizar rangos dinámicos en la definición de los nombres (y no rangos estáticos como he usado en la nota).
En mi nota sobre Manejo de pequeñas bases de datos en Excel – Referencias dinámicas con nombres hay una explicación sobre rangos dinámicos.
Hola Jorge,
En primer lugar felicitarlo por el blog, lo conocí casualmente pero me ha ayudado demasiado, en segundo lugar, a ver si me sigues ayudando..
En cuanto a las listas desplegables dependientes, si bien trabajan en base a la funcion INDIRECTO, quisiera
saber como poder llevarlas a un macro, pues una vez trato de ejecutarlo, si bien me crea la primer validación, una vez va a realizar la segunda (la dependiente), genera un error (1004).
Un Dato, la funcion INDIRECTO sería algo como asi:
ActiveCell.FormulaR1C1 = "=INDIRECT(RC[-1])"
sin embargo no se como incluirla en la validacion, gravando una macro quedaría algo como asi:
Formula1:="=INDIRECTO($M$2)"
Hola,
si estás trabajando com macros me parece más apropiado usar cuadros combinados o cuadros de lista. La ventaja de usar validación de datos es que nos exime de escribir código de Vb.
Jorge:
Excelente tu ayuda, muy didactica y facil de entender.
Necesito me ayudes con el siguiente problema. He hecho todo lo que aparece en este tutorial, pero necesito "ir más alla". Siguiendo con tu ejemplo, lo que yo necesito es que, luego de elegir PAIS, y CUIDAD, me aparesca(automaticamente) en una TERCERA columna por ejemplo: LA POBLACION de esa ciudad, que tengo en otra columna de datos.
Entonces el flujo seria: Elijo PAIS, luego elijo la CIUDAD y finalmente que aparesca 100.000.
Espero hayas entendido y me puedas ayudar.
pd: intente usando un código que enseñaste en otro tutorial sobre el BUSCARV, pero no pude adaptarlo.
Atte, Jaime Abett de la Torre.
Efectivamente, con BUSCARV. Tienes que tener una lista de ciudades con sus poblaciones de donde BUSCARV traer[ia el resultado buscado.
Hola Jorge. Tengo una duda que aun no puedo resolverla.
Quiero hacer una lista desplegable que dependa de otra lista tal y como en el caso del ejemplo. Pero que además me vincule un número de referencia en otra celda.
Por ejemplo: Cuando selecciono un pais de la primera lista desplegable se me cambia automaticamente la lista de ciudades en la otra lista (tal cual el ejemplo) y que al seleccionar una ciudad me aparezca un número en otra celda con el cual yo después pueda trabajar para darle aplicaciones.
Espero se entienda mi pregunta.
Saludos a todos
Hola
no estoy seguro de haber entendido, pero para que una celda aparezca un número al selccionar una ciudad, tienes que poner en la celda una fórmula que de ese resultado.
Por ejemplo, si quieres que cuando se seleccione Barcelona aparezca el número 1, con Madrid el 2 y con Sevilla el 3, puedes usar BUSCARV con una tabla auxiliar que conecte los números a las ciudades.
Hola Jorge!..
Ante todo muchisimas gracias por tu blog, tiene información que me ha salvado mas de una vez de pasar rabietas...
He intentado realizar el ejercicio que indicas anteriormente, pero cada vez que ingreso los datos me aparece el error: #¡Valor! ... me puedes explicar a que se debe esto.. gracias por tu respuesta..
saludos,
Lo mejor sería que me mandes el archivo ára que pueda fijarme donde está el problema.
Hola Jorge, mil gracias por este maravilloso Blogger, amigo mi pregunta es la siguiente: Tengo una lista desplegable con nombres, es decir, el usuario solo tiene que seleccionar alguna de las opciones que aparece en la lista, y listo...pero en un determinado momento el usuario no encuentra el nombre en la lista y el lo quiere ingresar manualmente, excel le arroja un valor que debe ingresar solo los datos de la lista... hay alguna forma de solventar esta situacion??? gracias!!!
Hola
toda la idea de la validación de datos es que sólo se pueden ingresar valores que figuren en la lista (esto es, "validados").
Para que un valor sea aceptado, debe ser previamente incluido en la lista de validación.
Hola, muy buena la explicaciòn me ayudo un monton, pero tengo un problemo, que hice lo de la lista dependiente de otra en la oficina en una compu con windoews, pero la mayoria de la compus tienen linux, y cuando abri el documento en la linux , con el openoffice, la segunda lista no funcionaba, tenes idea de como hacerlo???
el problema es que en la segunda lista si le pongo la funcion INDIRECTO en la opcion de LISTA, me lo toma como una opción de la lista, o sea me aparece en la lista desplegable solo la palabra "indirecto(A1)", y no se remite a los rangos.
Desde ya muchas Gracias.
Hola
no estoy familiarizado con el OpenOffice. Te sugiero que busques en los foros específicos.
Hola Jorge..
antes de nada muchas gracias por tu blog. Sencillamente genial. Tengo una cuestión al respecto y te agradecería mucho si pudieras echarme un cable. a la hora de realizar este ejemplo y poner los rangos para las entradas de definición de nombres por ejemplo no me permite hacerlo dándome el fallo de "VALOR" por lo que no puedo hacer el resto. Por otro lado mi intención es que al cambiar el valor de una celda en una lista desplegable me aparezca su valor asociado en otra de manera automática y sin tener que elegirlo. Un saludo y muchas gracias
Hola
#VALOR puede deberse a varios motivos, por ejemplo, que existe una celda con error dentro del rango. Puedes mandarme el archivo para que me fije donde pueda estar el problema.
Solucionado.Muchas gracias por todo. :-) (#Valor)
Hola que tal Jorge. Pues felicidades por este tu blog porque es de utilidad para muchas personas con dudas....
Ojala que me pudieras ayudar con mi duda.
Tengo un conjunto de Listas desplegables en una columna, todas las listas tienen los mismos datos que se obtienen de otra hoja (esto lo hago con Validacion), pero lo que quiero es que si yo selecciono las celdas A1, A2 y A3 con los valores de las listas desplegables y me ubico en la hoja2 los valores que seleccione aparezcan en otra lista desplegable,
Estoy usando Macros y si obtengo los valores de las listas el problema es que cuando intento agregarla a la otra lista no se agregan correctamente....
Espero me haya explicado.... Gracias por tu atenciópn
Hola Isay
si he entendido, quieres crear una lista de validación de datos basada en los valores de algunas celdas que a su vez contienen validación de datos.
Si es así la solución es sencilla. Digamos que en la celda A1 tienes una lista de validación de datos con los nombres Pedro, Jose, Rubén. En la celda A2 otra lista de validación de datos con María, Laura, Cristina.
Ahora creas un nombre que contiene el rango A1:A2. Este nombre lo usas como referencia en validación de datos para la celda donde quieres aplicar los resultados de A1 y A2.
Por supuesto, conviene definir los rangos de los nombres como rango dinámico, de manera que al agregar nombres o celdas, estos se actualicen automáticamente.
Hola Jorge,
Gracias por la ayuda que ofreces. Se agradece mucho, de verdad.
Tengo un problema y te agradecería me ayudaras.
Al realizar la primera lista desplegable con el método de validación, no tengo ningún problema. No obstante, al realizar la segunda lista de validación, me da un error en la casillla de origen.
He leido que alguien tenía el mismo problema que yo pero no he entendido bien la solución que das. no sé si es por el volumen de datos que tengo, porque debería utilizar una macro (espero no sea así porque no tengo ni idea cómo funcionan)...
Te agardecería mucho tu ayuda,
Un saludo,
Ainhoa
lo mejor será que me mendes el archivo para quepuede ver que tipo de error es el que recibes.
Hola Jorge, encontre este espacio y quisiera saber si me puedes ayudar ya que he creado un formulario en Excel que tiene Codigo, Cliente y Cantidad pero deseo que me almacene por Ejemplo Codigo en columna A, Cliente en la Columna B y Cantidad en la Columna C; e ingresar los datos fila por fila, espero me entiendas y poder contar con tu ayuda
Hola
ponte en contacto conmigo via mail (jorgedun@gmail.com)
Hola Jorge:
Saludos desde España.
Tengo creada una columna con datos de los nombres de Divisas. En realidad esta lista proviene de otro libro por lo que tengo una fórmula con la función SI para decirle que si en el libro original no hay datos que ponga "".
El problema radica en que cuando hago Control+Shift+Asterisco para crear un rango (dentro de una macro) Excel me crea la lista con las celdas en blanco que hay debajo cuando no encuentra datos en la original.
¿Cómo se puede evitar este tema?
Espero haber sido claro.
Un saludo,
Sergio
Hola y felicitaciones por el campeonato!
El problema no está en la macro, si no en el hecho que las celdas no están vacías, ya que contienen el enlace a las celdas del otro libro.
En general, en las macros conviene usar variables y parámetros para determinar o seleccionar rangos y no replpicar los átajos de teclado.
Hola Jorge:
Gracias por contestar tan rápido. En realidad soy argentino, aunque vivo en España hace 30 años, por lo que me puse contento con la Eurocopa.
El problema que tengo es que ese nombre de rango lo uso en una Validación con lista.
¿Qué sucede? Cuando voy a elegir una moneda determinada (o lo que fuera en otro caso) me sale una lista con todos los blancos hasta donde tengo desarrollada la fórmula ya que cuando hice Control+Shift+Asterisco entró todo.
No sé cómo resolverlo de un modo fácil y sin programación VBA.
Si lo tuviera que emplear para otro tema (por ejemplo para una tabla dinámica) no me afectaría haber previsto un rango más grande.
Pero para una validación me está afectando bastante.
Gracias por tu atención y un saludo,
Sergio
Hola Sergio
para que no aparezcan los blancos en la lista tenés que usar la función CONTAR.BLANCO en la fórmula que definie el rango dinámico, como muestro en este ejemplo.
Hola Jorge:
Quisiera consultarle si el ejemplo dado de las celdas con listas desplegables dependientes se puede usar con cuadros de controles o de formulario, como cuadros de listas o cuadros combinados y cómo habría que hacerlo. Es más cómo se haría en VBA creadno un UserForm para ello.
Gracias
Tal como dices, programando el userform, o cualquier otro control que elijas, con Vba.
El método mostrado en la nota se apoya en la funcionalidad de alidación de datos y nos sirve justamente para no tener que usar Vba.
Hola Jorge:
Probé la fórmula en la definición del nombre de rango con la función DESREF combinado con CONTARA y CONTAR.BLANCO, tal como viene en tu ejemplo con el nombre de rango LISTA y me funcionó perfectamente.
Muchas gracias por la ayuda. Me estudiaré el resto de la hoja de ejemplo porque también parece muy interesante.
En fin, hay que seguir estudiando Excel que nunca se acaba.
De nuevo gracias,
Sergio
hola Jorge
he estado buscando soluciones en excel y por lo que veo tu eres el mejor, espero me respondas mi duda, utilizo una lista desplegable mediante validacion en la hoja1 y los datos para esa lista estan en la hoja2, cuando abro la ventanita para indicarle la lista quiero que esta en la hoja2, no me permite abrir la hoja2, como le hago? o es que tiene que estar la lista en la mis ma hoja?
Si el rango que sirve de base a la lista está en otra hoja, tienes que definir ese rango en un nombre, como está explicado en esta nota.
Gracias Jorge
tienes toda la razon, puse el nombre del rango y todo funciona correcto, excelente blog y gracias por contestarme tan rapido felicidades por tu pagina.
Hola Jorge
Quisiera me ayudaras con un tema:
Estoy en Excel 2007
y estoy tratando de realizar el ejemplo que tu describes al inicio.
y no me resulta, de hecho varias cosas que hacia antes con listas ahora las puedo hacer a medias...
espero me puedas ayudar con esto en Excel 2007. Gracias
Nota:
!!Muy buenos Trabajos, Gracias!!
Hola Max
por ahora no trato problemas relacionados con XL2007.
Más adelante, empezaré a ratar temas relacionados con XL2007
hola Jorge
excelente pagina, nos has ayudado a muchos que nos manejamos en excel, gracias, bueno ahora ojala puedas ayudarme con esto: ¿hay alguna forma de que al momento en que se descargue un libro de excel de un correo, este se ejecute automaticamente? es decir quiero mandarle por correo una hoja de calculo mio a un amigo (que no tiene conocimiento de excel).
gracias de antemano
Si te refieres a que pase algo inmediatamente después de abrir el cuaderno, tienes que incluir un evento (macro) como esta explicado en esta nota.
hola Jorge muy bueno tu blog, te felicito.
ojala me ayudes con esto, yo recibo muchos archivos de texto y tengo que generar un reporte en excel con los datos de estos archivos, pero estos datos vienen todos juntos en una sola columna y manualmente tengo que separar los datos con la ayuda se excel, habrá alguna macro que automaticamente me separe los datos en columnas?
gracias.
Se puede solucionar con macros. Ponte en contacto conmigo por mail.
Hola Jorge, mi nombre es Paolo de Chile y tengo el problema que necesito leer los valores de una encuesta que esta hecha en excel, pero lo unico malo es que necesito leerla desde visual basic, ya hice una aplicacion pero cuando leo el valor de la celda donde esta la lista me devuelve vacío. excel_sheet.Cells(6, 2)
Còmo puedo leer esos campos que son optionbox, listbox , ettc
Muchas Gracias de antemano
Hola Paolo
ese tipo de consulta tienes que mandarla a mi mail (aparece en la columna izquierda del blog, arriba)
Hola, he tomado tu ejemplo y me ha servido mucho. Encuentro muy interesantes los comentarios para borrar los datos que no corresponden a la celda dependiente y quisiera aplicarlo para un ejemplo donde la validación no se aplica para un solo dato sino para la alimentación de una base de datos (hacia abajo en dos columnas) así:
pais: argentina / ciudad: se llena con la lista desplegable
pais: bolivia / ciudad: se llena con la lista desplegable
etc...
mi correo es dgomex@gmail.com
Hola
Ponte en contacto conmigo por mail.
Hola Jorge, mi nombre es Javier.
Antes que nada felicitarle por el magnifico blog.
Tengo un taller de estructuras metálicas y no encuentro ningún producto en el mercado que se acople a mi manera de realizar presupuesto.
He decidido crearme unas hojas de cálculo justo a mis necesidades.
La idea es tener una hoja con todos los artículos que yo utilizo en el taller. Estoy dudando si hacerlo en un archivo a parte ya que lo iré enriqueciendo de información con el paso del tiempo, bueno no se como haré esto.
Mi duda es la siguiente:
En la hoja donde tengo los artículos quiero introducir uno detrás de otro y a cada tipo asignarle una familia. Es decir que los artículos que san tubos cuadrados poner una casilla inicial donde ponga TC que será la familia a la que pertenece y así uno detrás de otro.
La finalidad es que cuando este en la Hoja del presupuesto para poder encontrar mejor los artículos poner una casilla que sea familia y en la siguiente que solo salgan las artículos que pertenezcan a esa familia.
He estado aplicando el ejemplo de los países y haciendo pruebas, y no me funciona. Creo que el motivo es debido a que yo defino a que familia pertenece cada articulo en una columna, no como los países que están en una fila y debajo las ciudades.
Espero haber expresado bien el problema.
Muchísimas gracias por su atención
Ten[es que usar la técnica que muestro en la nota sobre listas desplegables dependientes múltiples.
Hola, estoy tratando de montar un formato de la siguiente manera:
Cuando se le digite en una celda determinada "general" me despliegue una lista y cuando se le digite "especifico" me despliegue otra lista. Nose como enlazar las dos listas desplegables bajo los parametros ya dichos.
Me ayudas por favor.
Gracias.
Hola
tal como está explicado en la nota. También puedes fijarte en esta otra entrada.
Hola, soy de Mexico y de casualidad cai en este blog muy claro e interesante, podrias ayudarme? quiero una lista desplegable en una celda pero cuando intento hacer referencia a una lista creada en otra hoja me da un error de que no se puede, uso escel 2003, ojala y puedas ayudarme gracias y nuevamente felicidades, haces una gran aportacion a la red
Para crear listas con validación de datos basándote en rangos de otras hojas, tienes que usar nombres, como explico en esta nota.
Muy buenas Jorge.
Esta pagina es increible, antes de conocerla solo sabia hacer sumas en excel y ahora ya se hacer sumas y hacer estas maravillosas listas desplegables dependientes.;)
Bueno al grano, mi problema es el siguiente. tengo 3 listas desplegables . en una tengo marcas (de vehiculos), luego modelos y en la siguiente piezas.El problema lo tengo con las piezas. Tengo creado una columna donde pongo todas las piezas seguidas, las piezas estan separadas con el nombre del modelo. Pero existen modelos de automoviles que son un numero (por ejemplo el 147 o 156 de alfa romeo) y la hora de definir el nombre de las piezas (por ejemplo para las piezas del 147) me da un error, me dice que es un nombre no valido.Existe alguna manera de nombrar esa columna de piezas sin tener que poner "cientocuarentaysiete"
Un saludo y gracias por tu atencion y tu desinteresada ayuda.
koldo
Koldo
los nombres no pueden comenzar con un número (y también deben cumplir otras reglas como no ser similar a una referencia, por ejemplo, A1).
La solución en tu caso es poner un _ (guión inferior) al principio (por ejemplo _147)
Hola Jorge! FElicitaciones por la página, es excelente. Tus explicaciones son claras y precisas!
Mi pregunta es la siguiente: Tengo un archivo similar al tuyo con listas dependientes (ciudades y paises). Las he vinculado y no hay problema. DEbido al tamaño de datos quiero trabajar con rangos dinamicos. Al definir como rango dinamico a los datos de paises no hay problema(estos se agregan automaticamente).Pero cuando definimos como dinamicos a los datos de ciudades ocurre que los datos no se despliegan de la lista. Me explico? Es decir que excel me permite definir como rango dinamico a los datos de paises y no de ciudades debido a crear una lista dependiente. Alguna idea para poder solucionar esto? Desde ya muchas gracias
saludos
Juan
Hola Juan
puedes mandarme el archivo para que vea donde pueda estar el problema.
Estimado,
es increíble la ayuda que me ha brindado tu Blog, y te agradezco de antemano por querer transmitir tus conocimientos en esta aula virtual.
Pero ya verás que tengo un dilema que no puedo resolver. Quizás es una sencillez, pero no logro solucionarlo.
Logré hacer la validación de datos condicionada a otra, pero necesito extender esta opción a las celdas de una columna, osea, que la columna B arroje las opciones de validación de acuerdo al valor ingresado en la columna A. Esto a lo largo de 500 celdas de una columna.
Cómo se puede hacer? ya que al extender las celdas con el ratón e incluso con Ctrl no se modifica la fórmula de la validación. Existe una forma de aplicar un contador a la fórmula o algo similar?
Espero atento tu respuesta y de antemano muchas gracias.
Mi mail es rbalbontin@gmail.com
Saludos!
Estimado,
es increíble la ayuda que me ha brindado tu Blog, y te agradezco de antemano por querer transmitir tus conocimientos en esta aula virtual.
Pero ya verás que tengo un dilema que no puedo resolver. Quizás es una sencillez, pero no logro solucionarlo.
Logré hacer la validación de datos condicionada a otra, pero necesito extender esta opción a las celdas de una columna, osea, que la columna B arroje las opciones de validación de acuerdo al valor ingresado en la columna A. Esto a lo largo de 500 celdas de una columna.
Cómo se puede hacer? ya que al extender las celdas con el ratón e incluso con Ctrl no se modifica la fórmula de la validación. Existe una forma de aplicar un contador a la fórmula o algo similar?
Espero atento tu respuesta y de antemano muchas gracias.
Mi mail es rbalbontin@gmail.com
Saludos!
Al copiar un rango a otro las fórmula de validación de datos se comportan como las fórmulas en las celdas. Es decir, si la fórmula en validación de datos en la columna B es B1<$A$1 (los valores en la columna B tiene que ser menores que el valor de la celda A1), al copiar un rango de B a C, la fórmula en validación de datos cambiará a C1<$A$1.
Pero si la fórmula es B1<A1, al copiar se transformará en C1<B1.
Espero haber entendido tu consulta.
Muchas gracias, pero hay algo que estoy haciendo entonces que no permite que la validación de datos sea dinámica.
Mira esto es lo que estoy haciendo:
- defino nombre paises y lo aplico atraves de validación a una celda (A1).
- defino nombre de cada pais con sus respectivas ciudades y lo aplico através de validación de datos a la celda contigua (B1) a la validada con países utilizando la función INDIRECTO y la celda anterior (=INDIRECTO($A$1)).
- extiendo la celda paises hacia abajo por la misma columna (A).
- extiendo la celda ciudades hacia abajo por la misma columna (B).
El problema radica en que la columna B aún extendidas las celdas,sigue respondiendo al valor ingresado en la celda A1 y no al valor correspondiente de la celda anterior de cada fila, oséa, quiero que B1 responda al valor de A1, B2 responda a A2, B3 a A3 y así sucesivamente.
Esto es lo que no se me modifica al extender las celdas y al verificar la fórmula de validación me he percatado de que no cambia.
¿Que puedo hacer?
Saludos.
RB
Rodrigo
fiajte que estás usando referencias absolutas en INDIRECTO($A$1) cuando tendrías que estar usando referencias relativas: INDIRECTO(A1), sin los signos $
Estimado,
estaré eternamente agradecido...
muchas gracias...
RBT
Apreciable Jorge, ¿estas listas desplegables se podrían usar con la herramienta FORMULADIO del menú DATOS (Office 2003)?
Es decir ya que tengo creadas las listas dependientes, quisiera seleccionar el rango de captura de datos y en lugar de capturar directamente sobre la hoja de calculo hacerlo mediante un Formulario del Menú Datos, ya hiuce la prueba al crear mis listas, luego seleccioné el rango en que quiero capturar los datos (inlcuyendo los encabezados Paises y Ciudades) pero me da la opción de escribir más no me aparece la lista desplegable en cada concepto(paises o ciudades), ¿crees que se podría lograr?
De antemano gracias por tu apoyo,
Saludos
Alexx
Los Mochis, Sinaloa, México
Hola Alex
para ser sincero no le encuentro grandes ventajas al formulario. ¿Por qué no usás la herramienta Listas? Tiene varias ventajas y además te permite usar listas desplegables de validación de datos.
Hola,
Mi pregunta es de la más tonta, pero es que llevo intentandolo un monton y no hay forma.
Mi problema es que el combo este lo tengo que copiar en un montón de celdas. Es decir, la celda A1/B1tendrán dos combos (donde puede ir argentina/ciudad), ahora quiero copiar ese formato a las celdas A2/B2, de tal forma que pueda elegir en la A2 un pais diferente y por consiguiente en B2 haya otra ciduad distinta.
El problema es que al copiar las celdas que llevan la función INDIRECTO, me copia la dependencia con la celda A1, y no consigo encontrar una forma rápida de copiar sin tener que entrar en validación de nuevo y cambiar a que dependa de la A2. tengo que copiar estos combos en unas mil celdas, please, dime que hay una forma de hacerlo facilmente y que no tengo que editar la validación en cada una.
Muchísimas gracias
¿Estás usando referencias relativas (sin los signos $)?
Hola,
Ante todo enhorabuena, me has facilitado mucho la vida con este blog. Ahora me surge la siguiente duda. Tengo una lista de validación, que cuando la despliego muestra 8 elementos de la lista, me gustaría saber si hay alguna manera de ampliar el número de elementos a mostrar, entre 10 y 20.
Muchas gracias por anticipado
Jorge exelente el blog. Te queria hacer una consulta. tengo un listado de titulos, peso, codigo y costo separados en columnas, gracias a tu blo logre hacer un desplegable con los titulos pero quiero que seleccionando uno de la lista desplegable me coloque en las celdas de las columnas contiguas el peso, codigo y costo. Como puedo hacerlo?.
Gracias
Javier
Usando el valor de la celda con la lista desplegable en una función BUSCARV, o alguna otra función de búsqueda (como INDICE)
hola, justamente lo visto en este espacio es lo que quiero hacer, pero lo que no puedo es hacer la parte de abajo dond eesta lo de definiciòn de nombres, no se como crear esos grupos condicionales o con que formulas para poder usarlos en datos condicionados, ya estoy atorado y revuelto, me pueden ayudar por favor??? has de cuenta que el paso 2. donde ya dspues de escoger un pais como logro sacar la lista desplegable de las ciudades... De verdad ojala y me puedan ayduark, gracias
Hola Jorge.
Es primera vez que uso un foro en internet para buscar solución a un problema de excel, te puedo agradecer y decir que en algunas dudas me he apoyado mucho en consejos a otras personas y me han servido mucho.
Esta es la primera vez q te escribo para solicitar tu ayuda pues no puedo con el condicionamiento de una celda.
Estoy haciendo un formato de renta de juegos, por ejemplo quiero que en la tercera columna al seleccionar de la C Y E, hay una condición para la celda F, es como lo de las ciudades de los paises del ejemplo, pero no logro dar con la formula, quiero que al seleccionar de la C si es servicio "local" o de "internet", y la E me dice cuanto tiempo en horas, La columna F me arroje el precio correspondiente.
Espero me puedas ayudar con esta info, te lo agradecería mucho pues es para un proyecto escolar donde quiero demostrar a la maestra que se puede hacer mucho mas en excel que gráficas.
Saludos y espero tu respuesta.
Aloxus
El tema de listas desplegables es uno de lo más populares en este blog, ajuzgar por la cantidad de comentarios y la de mails que recibo en forma privada.
Estoy escribiendo una guía detallada sobre el tema que incluirá un manual (PDF), un cuaderno Excel con ejemplos y algunas animaciones. Cuando esté listo pondré un enlace en el blog pára la descarga.
En respuesta ala consulta de Anónimo del 6 de febrero: la cantidad de líneas en el cuadro de validación de datos no se puede modificar (hasta donde yo se). Pero en su lugar puedes usar una combobox (cuadro combinado) de la barra de formularios. En la pestaña de propiedades puedes controlar el número de líneas a mostrar.
Y disculpas por la demora en responder.
Hola,
Soy el anónimo de la consulta del 6 de febrero, muchas gracias por tu respuesta, me ha sido de gran ayuda.
Si quiero aplicar este mismo metodo de validación pero en filas sucesivas, como funciona? porque siempre estoy referenciando a la $a$5....pero si quiero hacerlo en las mismas columnas desde ahi hacia abajo? debo validar celda por celda, referenciando a la columna A? Gracias!
No estoy seguro de haber entendido, pero puedes fijarte en la nota sobre listas desplegables dependendientes múltiples.
Hola muy bueno el blog, me ha ayudado muchisimo de verdad que felicitaciones. Tengo el problema siguiente. Siguiendo el ejemplo planteado. Tengo 3 Listas desplegables.
La primera contiene los paises.
La segunda (que viene referenciada con el indirect tal cual ejemplo) contiene las ciudades.
La tercera contiene productos.
Lo que necesito es que al seleccionar el pais y la ciudad, venga referenciado tambien los productos correspondientes a ese pais y ciudad no se como colocar ese indirect. Es decir que la 3era lista deberia estar asociada tanto a la 1era como a la 2da.
Muchas gracias
Att: Carolina
Carolina
el tema de las listas desplegables es uno de los que más interés y dudas despierta en el blog.
He decidido publicar una guía sobre el tema que podrá descargarse.
Me fue muy util tu aporte, gracias!
Hola Jorge.
Quiero crear una lista desplegable con tres dependencias
A1 = Nombre; B1 = Colores zapatos y C1 = Colores calcetines.
Tanto en B1 y C1 pueden haber varias opciones y la lista desplegable de B1 y C1 tiene que estar referenciada a A1 = Nombre.
En el caso que has expuesto con INDIRECTO la lista solo tiene dos dependencias y estoy dandole vueltas y no se como hacer para que refernciandose solo a A1 puedan haber más de dos dependencias. ¿Me puedes hechar una mano?
Un saludo.
Luis
Hola Luis
fijate en la técnica que muestro en esta nota.
Perfecto.
Muchas gracias por tu ayuda y gran disponibilidad. Tienes un blog muy útil.
Un saludo.
Luis.
Jorge, muchas gracias por toda la información.
Tengo un problema con la lista de paises. Cunado defino los nombres me sale #¡VALOR, por lo tanto no puedo ejecutar la lista.
Como puedo corregir este problema.
Muchas Gracias.
Saludos.
Hola Julio
mandame el archivo (la dirección y las reglas a seguir están en el enlace de Contacto).
que tal... disculpa la molestia, tengo una duda y una pregunta que hacer
como hago para colocar dos listas desplegables en VBA, y que al seleccionar el dato de una me active valores de otra
La respuesta a tu pregunta no puede ponerse en un comentario. Tal vez publique algo sobre el tema en el futuro.
Estimado Jorge,
En primer lugar, quisiera felicitarle por esta página y por ayudar desinteresadamente a quien le pregunte. Yo mismo preciso de su consejo.
Estoy realizando un prontuario de perfiles metálicos para la construcción. Cada tipo de perfil tiene una nomenclatura concreta y a continuación una serie de características propias, p.e: Tipo de perfil "IPE", altura "270", y ya a partir de aquí una fila de varias características (peso, inercias, áreas, etc.) y por supuesto, cada tipo de perfil y dimensión tiene las suyas.
Mi consulta es: ¿cómo puedo visualizar en otra hoja distinta una sola fila, perteneciente a un perfil concreto, tras seleccionar mediante 2 listas desplegables dependientes (tipo de perfil y altura) los datos que preciso? Es decir, en la primera lista desplegable, elijo el tipo de perfil y en la segunda la altura concreta, para lo cual quiero observar solo la fila de las características de esta selección.
Gracias por su atención y un cordial saludo.
Hola jorge me parece excelente tu Blog, bueno jorge tengo un pequeño problema con crear un cuadro de busqueda, estoy haciendo un inventario con datos de computadoras pero ahora necesito crear un cuadro de busqueda
un ejemplo:
ya tengo mi ranura de busqueda lista de tal forma que puede buscar escribiendo o desplegando la barra para buscar el dato de forma manual... pero
ahora necesito es cuando yo escriba algum dato en mi cuadro de busqueda se muestre automatica mente en los otros espacios en blanco, me explico?
al asi
Serial: 00000022566
y automaticamanete en otras ranuras salga esta informacion en mi cuadro
Nombre: Anomimo
TN°: tj6678
Tag: Pg005678
Modelo: Hp epson
Tipo: impresora
por favor si me entiendes seria de gran ayuda
Jhon
vamos por partes. Cuanda dices "ranuras", ¿te refieres a celdas? De ser así tienes que crear una fórmula con BUSCARV (o alguna otra función de bpusqueda como INDICE o COINCIDIR) para traer el resultado esperado en función del valor elegido en la lsta desplegable.
Hectorizate
tienes que usar una fórmula con INDICE y COINCIDIR para traer los valores que coincidan con los dos parámetros.
que tal jorge, ojalá me puedas ayudar con esto, estoy haciendo una validación ligada con las listas dependientes y la función indirecto, todo ha funcionado bien, el problema es que cuando la celda 1 (de la cual se desprende la lista de la celda 2) está vacía, se puede escribir cualquier cosa en la celda 2, necesito que si la primera lista está vacia, despliegue una lista genérica y no permita escribir algo que no esté en la lista genérica, ya he intentado con =si(a1="",generica,indirecto(a1), pero no funciona de todas maneras, me sigue permitiendo escribir,
qué puedo hacer?
saludos
Gerardo
¿en dónde estás poniendo la fórmula? Si la pones en la opción Lista de validación de datos, tiene que funcionar.
Publicar un comentario en la entrada