Excelente video, muchas gracias por la explicación, me ayudó mucho en mi trabajo. Sin embargo, en la aplicación de este código me di cuenta que si tienes otras hojas, se desplegaba una lista (vacía) en la columa B de TODAS LAS HOJAS del archivo (y no solamente en la hoja de Datos ), cada vez que se modifica la columna A de otra hoja. Por lo tanto, es necesario limitar la función onEdit para la hoja que estás interesado. Eso lo pude solucionar creando una nueva variable que toma el nombre de la hoja activa var nombreHoja = archivo.getActiveSheet().getSheetName(); y en condicional if, evaluando que el nombre de la hoja activa coincida con el nombre donde quieres que se aplique el código, para el caso del video "Datos", if ( nombreHoja =="Datos" && filaActiva>1 && columnaActiva ==1){ Espero que esto sea de ayuda para alguien. Saludos!
Maravilloso (otra vez). Te puse seguir perfectamente todo el razonamiento que fuiste haciendo en la programación del código. Me sirvió un montón que no hayas sacado del video los errores que fuiste cometiendo. Muchas Gracias
Muy buen video, la verdad que utilizo mucho a diario Google drive y Google sheets , y desde hace bastante tiempo había querido aprender a utilizar el editor de secuencias y este video está muy bien explicado y funcionó perfecto gracias
Hola! Tienes toda la razón!!! Despues de 5 meses hasta ahora me doy cuenta de ese error 🤦 En teoría con lo que hago después funcionaria agregando cualquier otro país, pero mil gracias por darte cuenta y por escribirlo Un gran saludo!
@@JuanSGuzman Hola! Me iba todo genial, hasta que quise hacer otro script igual en otra hoja y llamando a otra hoja auxiliar. En las 2 hojas me llama a la misma lista desplegable, será porque la variable es igual? Te dejo los 2 códigos. A ver si me puedes decir donde estoy errando. Gracias! EL PRIMER ARCHIVO ES DESPLEGABLEUF.GS function onEdit() { var archivo = SpreadsheetApp.getActiveSpreadsheet(); var hojaIngresos = archivo.getSheetByName("INGRESOS"); var idcons = hojaIngresos.getActiveCell().getValue(); var filaActiva = hojaIngresos.getActiveCell().getRow(); var columnaActiva = hojaIngresos.getActiveCell().getColumn(); var hojaLista = archivo.getSheetByName("Auxiliar2"); var consorcios = hojaLista.getRange(2,1,1,hojaLista.getLastColumn()).getValues(); if (filaActiva>4 && columnaActiva ==3 && hojaIngresos.getName()=="INGRESOS"){ var indice = consorcios[0].indexOf(idcons)+1; var rangoValidacion = hojaLista.getRange(3,indice,hojaLista.getLastRow()); var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build(); hojaIngresos.getActiveCell().offset(0,2).setDataValidation(reglaValidacion ); } } EL SEGUNDO ARCHIVO ES DESPLEGABLEPROVEED.GS function onEdit() { var archivo = SpreadsheetApp.getActiveSpreadsheet(); var hojaGastos = archivo.getSheetByName("GASTOS"); var idcons = hojaGastos.getActiveCell().getValue(); var filaActiva = hojaGastos.getActiveCell().getRow(); var columnaActiva = hojaGastos.getActiveCell().getColumn(); var hojaLista = archivo.getSheetByName("Auxiliar3"); var consorcios = hojaLista.getRange(2,1,1,hojaLista.getLastColumn()).getValues(); if (filaActiva>4 && columnaActiva ==3 && hojaGastos.getName()=="GASTOS"){ var indice = consorcios[0].indexOf(idcons)+1; var rangoValidacion = hojaLista.getRange(3,indice,hojaLista.getLastRow()); var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build(); hojaGastos.getActiveCell().offset(0,2).setDataValidation(reglaValidacion ); } }
Hola Juan, qué tal? En primer lugar darte las gracias por el tutorial. Es una auténtica pasada. Te comento mi caso. Estoy usando este tutorial para crear una hoja de presupuesto con una primera columna con los servicios disponibles, una segunda con los niveles y una tercera con los precios. Pero yo al crear la validación de datos solo dejo que se muestre en el desplegable los datos correspondientes a su condicional concreta. Por ejemplo en la primera fila de la columna Servicios solo aparece el servicio 1, de tal forma que en la columna de Niveles solo cargan los niveles correspondientes al servicio 1 y en la columna precio solo aparece el precio del nivel escogido. Hasta aquí bien. El problema me viene cuando quiero duplicar el código para hacer que en la fila de abajo haga lo mismo con otro servicio distinto. Cuando lo hago y selecciono el Servicio 2 en la primera columna, en la segunda veo efectivamente los niveles correspondientes al servicio 2, pero no me aparece el desplegable en la columna 3 y deja de funcionar la primera. Espero haberme explicado. Te agradecería la ayuda. Un gran abrazo Y enhorabuena por este trabajo
suscrito!!! Que buen trabajo, funciona excelente, podrías meterle mente a uno de conversión de números a letras para el caso del dinero, igual que este para varias filas.
Sorry to be off topic but does anyone know of a way to log back into an instagram account?? I stupidly lost the account password. I appreciate any assistance you can offer me!
@Landon Misael i really appreciate your reply. I found the site through google and im in the hacking process now. Looks like it's gonna take a while so I will get back to you later with my results.
Excelente video, gracias. Quisiera hacerte una consulta, como hago para poner otro desplegable condicional (otros datos) en la misma hoja, pero en distintas columnas.
Gracia fenomeno! Tuve inconvenientes para aplicar el codigo porque mis categorias estaban en filas y no columnas. Entonces se me hacia una matriz en lugar de un array.
Muchas gracias por la explicación. He realizado el ejemplo y ha funcionado muy bien. Una consulta por favor, si tengo varias pestañas (desde enero a diciembre) en las que deseo aplicar las listas desplegables, aparte tengo mi pestaña de "Listas" (en el mismo documento) ¿Cómo podría hacer para que el código afecte a las pestañas de enero a diciembre, pero no a la de "Listas"? Le agradezco de antemano 🙌
Hola hola Juan, tus videos son excelentes y me he apoyado mucho de ellos. En esta ocasión no encuentro el error, al parecer tengo el código bien, ya lo revise muchísimas veces comparadolo con el tuyo, todo funciona bien excepto al final. cuando ya se elige la lista desplegable resultante de la primera, esta segunda no carga información, solo me dice "cargando..." y allí se queda, pensé que talvez tardaría en cargar información, asi que la deje mucho tiempo y no.
Hola! Ya encontré el error Este error pasa cuando la longitud de cada una de las listas es diferente, entonces esta trayendo muchos vaicos y por eso causa el error Reemplaza por favor la linea 18 del video, o sea esta: var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow()); Por lo siguiente var filas = 0 for(i=hojaLista.getMaxRows();i>0;i--){ if(hojaLista.getRange(i,indice).getValue()!=''){ filas=i; break; } } var rangoValidacion = hojaLista.getRange(2,indice,filas-1); Lo que hace esto es buscar el número real de filas que tiene esa lista Espero te funcione
Hola @JuanSGuzman podemos poner formatos con script a las listas desplegables? tipo CHIP.... como lo haría de forma dinámica...o con el formato de la lista
Hola Juan! Muchísimas gracias por el código, soy una completa neófita en estos temas y gracias a tu excelentes explicaciones decidí animarme a intentarlo por mi cuenta. Lamentablemente fracasé, ya que al final me ocurre el mismo error de otras personas (no me despliega el menú en la segunda columna). Ya estuve revisando todos los comentarios y tus respuestas para ver si con eso lograba corregirlo pero nada. ¿Qué puede estar sucediendo? Cabe señalar que al darle ejecutar no me reporta ningún error.
wao!! lo copie tal cual para ver si es cierto que funcionaba y siiii !! excelente ejercicio ... de programación. function onEdit() { var archivo = SpreadsheetApp.getActiveSpreadsheet(); var hojaArticulos = archivo.getSheetByName("Articulos"); var departa = hojaArticulos.getActiveCell().getValue(); var filaActiva = hojaArticulos.getActiveCell().getRow(); var columaActiva = hojaArticulos.getActiveCell().getColumn(); var hojaCata = archivo.getSheetByName("Catalogo"); var categos = hojaCata.getRange(1,1,1,hojaCata.getLastColumn()).getValues(); if(filaActiva>1 && columaActiva==2){ var indice = categos[0].indexOf(departa); var rangoValidacion = hojaCata.getRange(3,indice+1,hojaCata.getLastRow()); var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build(); hojaArticulos.getActiveCell().offset(0,1).setDataValidation(reglaValidacion); } }
Hola Juan S Guzman; Primero que todo quiero agradecerte por el vídeo el cual esta muy bien detallado, pero quisiera saber como puedo hacer lo mismo para otras columnas, por ejemplo escoger el país en la columna P y me salga la lista desplegable de ciudades en la columna Q. Gracias de Antemano.
Hola! Te refieres a solo cambiar la posición de la columna? o repetir el mismo desplegable condicional varias veces en la misma hoja, pero en distintas columnas? Saludos!
Muchas Gracias Juan Guzmán por el video, muy útil, Excelente aporte, Tengo una consulta, se podría utilizar en OnEdit dos veces en una sola función. Me explico un poco, la funcionalidad de la lista desplegable en la columna uno funciona y muestra en la columna 2 el respectivo filtro, pero en esa misma hoja de cálculo unas columnas más adelante, por ejemplo en la columna H se quiere hacer los mismo. Le cambio el var listaActivos = hojaLista.getRange(1,8,1,11).getValues(); y en if(filaActiva>1 && columnaActiva ==8) para inicie el rango más adelante, pero deja de funcionar.
Hola! Puedes hacer dos funciones diferentes. Llama la primera desplegable1() y la segunda dseplegable2() Luego pones las dos en un onEdit function onEdit(){ desplegable1() desplegable2() } Saludos!
Genial!!! Juan. Consulta, se puede hacer esto pero en Forms? es decir hay alguna forma de vincular esto con un forms o hacerlo de frente en código en el forms o algo asi?, quiero crear un forms que me selecciones según respuesta opciones distintas pero no quiero que sean secciones del forms si no dentro de las mismas preguntas.
Excelente tutorial Juan, saludos desde Brasil, por favor.... tengo un problema para desarrollar un codigo Script en que me muestre el primer elemento de la lista desplegable en lugar de en blanco? dos semana y aun nada....
Hola Augusto Mil gracias por tus palabras! Te refieres como a un predeterminado? O sea crear desplegables que tengan como predeterminado el primer elemento? Un gran saludo!
hola, está súper clara la explicación, una consulta adicional...si quiero que las dependencias se repitan también en otras columnas, qué tendría que hacer? replicar todo el código tantas veces como columnas es en las que quiero que se replique?
Hola! Si es el mismo desplegables, solo tienes que agregar mas condiciones para que no repitas tanto tu codigo Seria algo asi if(filaActiva>1 && (colActiva==1 || colActiva==4) Me cuentas como te va Saludos!
@@JuanSGuzman consulta, cuando es con código solo puede haber para una lista desplegable? estoy tratando de hacer más de dos listas desplegables dependientes, pero uno de los códigos invalida el otro
Hola! Lo más fácil es hacer dos funciones function funcion1(){} function funcion2(){} Y despues las metes dentro del onEdit maestro function onEdit(){ funcion1() funcion2() } Saludos!
Hola 😱 muy interesante, no conozco nada de esto pero siguiendo los pasos logré hacerlo. Estoy elaborando un reporte para mi trabajo y necesito llenar la tabla todos los meses ¿Como hago para tener la misma validacion en distintas hojas del libro?
Hola Ceci En el condicional en vez de poner nombreHoja=="Hoja 1" puedes poner varias hojas con el operador || seria algo asi if(nombreHoja=="Hoja 1" || nombreHoja=="Hoja 2") Estoy haciendo una serie de videos nuevos donde lo explico un poco más en detalle Saludos!
Tengo un archivo que me corrió y me funcionó perfecto la primera vez, tengo que funcionar varias listas condicionales a lo largo de mi archivo. No se si puedas apoyarme revisando mi archivo o con una asesoría personalizada
Hola Juan!, muchas felicidades para ti, gracias por tu real interés en ayudar. me gustaría saber como puedo hacer esto en google forms, quisiera pedir desde forms tres destinos donde quisieras viajar, por lo tanto, debo mostrar tres veces estos filtros condicionados pero no se como hacerlo o si es que se puede hacer. Te agradecería mucho me pudieras orientar.
Hola Cristina Espero estés bien Desafortunadamente no se puede hacer exactamente lo mismo en Forms Una opción es usar las Secciones. Aquí te dejo un video. No es lo más dinámico pero para pocas opciones como en tu caso, puede servir muy bien Aquí te dejo un video ruclips.net/video/ixIFMgynny0/видео.html Saludos!
Hola Juan. Muchas gracias por el video! Tengo una consulta eso sí... pretendo usar esta funcionalidad en un archivo plantilla para presupuestos, el asunto es que cuando lo duplico y le cambio el nombre al archivo, el app script ya no funciona; en cambio si se duplica y mantiene el nombre si funciona. ¿Sabes si se puede hacer algo para que el script siga funcionando en copias del archivo con un nombre distinto? Te agredecería mucho la respuesta!
Hola Felipe Prueba entrando la primera vez y dándole play desde el editor de secuencia solo para darle la autorización a ver si eso te lo soluciona Me cuentas!
Hola Juan! Antes que nada muchas gracias por el apoyo, y validando en la opción herramientas de mi drive, no me aparece la opción para meterme en ingresar el código, justo antes del minuto 5
@@JuanSGuzman Apoyo la idea de tu curso! si es pago, si no lo es, se ve que tus conocimientos son sólidos y no tendría inconvenientes en seguirte! Gracias!
Dos correcciones o adiciones 1. Para que no les ocurra el error de que aparezca desplegable en otras hojas, por favor reemplazar la línea 16 por: if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet.getName()=="Datos"){ 2. Cuando las listas de las subcategorías son de distintas longitudes les puede causar un error y quedarse "Cargando...". Para solucionar esto: Reemplaza por favor la linea 18 del video, o sea esta: var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow()); Por lo siguiente var filas = 0 for(i=hojaLista.getMaxRows();i>0;i--){ if(hojaLista.getRange(i,indice).getValue()!=''){ filas=i; break; } } var rangoValidacion = hojaLista.getRange(2,indice,filas-1); Lo que hace esto es buscar el número real de filas que tiene esa lista Espero les solucione si se enfrentan a esta situación Saludos!
@@alexander19187 Siii Culpa mia Siempre me pasa lo mismo! Me faltan los parentesis...por no probar antes de contestar 🤦 Cambiala por esta if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos"){ Saludos!
Buen día Juan, intenté realizar la corrección 2 ya que me aparece en mi lista "loading...", sin embargo no me funciona y deja de trabajar el script, ya no aparece siquiera la opción de la lista. Ojalá me puedas ayudar!
Buenas, muchas gracias por los videos. Los estoy viendo a todos para poder aprender todo lo posible. Me pasaba el mismo problema con la columna de la lista dependiente, quedaba CARGANDO sin poder seguir avanzando; intente corregir con la linea de código, sin embargo ahora no me funciona el scrip. pego el código. function onEdit() { var archivo = SpreadsheetApp.getActiveSpreadsheet(); var hojaDatos = archivo.getSheetByName("Datos"); var pais = hojaDatos.getActiveCell().getValue(); var filaActiva = hojaDatos.getActiveCell().getRow(); var columnaActiva = hojaDatos.getActiveCell().getColumn(); var hojaLista = archivo.getSheetByName("lista"); var paises = hojaLista.getRange(1, 1, 1, 8).getValues(); if (filaActiva > 1 && columnaActiva == 1 && archivo.getActiveSheet().getName() == "Datos") { var indice = paises[0].indexOf(pais) + 1; var filas = 0 for (i = hojaLista.getMaxRows(); i > 0; i--) { if (hojaLista.getRange(i, indice).getValues() != "") { filas = i; break; } } var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build(); hojaDatos.getActiveCell().offset(0, 1).setDataValidation(reglaValidacion); } } gracias por todos, saludos
Buenas, tengo que hacer si o si todo el proceso o puedo solo copiar el código final y editar las celdas y hojas de referencia? Si se puede así por favor podes compartir el código? Desde ya muchas gracias por compartir tu conocimiento! Saludos desde Argentina
Hola Pablo. Gracias por el comentario. En el blog encuentras el código completo. juansguzman.com/lista-desplegable-condicional-en-varias-filas-google-sheets-apps-script/ Saludos!
@@JuanSGuzman necesito hacer lo del video, luego en esa hoja podria aplicar formulas tipo buscarv o ya no me dejaría? y otra consulta, cobras por hacer esta configuración, la verdad que vi el video 2 veces y leí lo del blog pero estoy trabadisimo. Es para un colegio necesito que cuando alguien elija PRIMERO_A (x ej) la segunda lista dependiente me pueda arrojar datos de los alumnos que pertenecen a ese curso
Hola Pablo. Hasta ahora vi tu comentario. En teoria puedes despues usar buscarv o cualquier otra formula. Si tienes un problema en particular cuentame y lo trabajamos en un video. Si prefieres, me contactas al correo guzman.sheets@gmail.com
Hola Juan, muy buen vídeo, tengo una duda, no me aparece en mi hoja de sheets la opción de editor de secuencia de comandos, cómo se habilita? gracias quedo atento
Otra cosa buena sería que si una opción de la lista deplegable solo tiene una opción elegible, entonces la muestre directo sin tener que elegirla. Supongamos que en la lista países tenemos el Vaticano y su única ciudad es la propia ciudad del Vaticano se ahorraría tiempo si al elegir el estado del vaticano solo apareciera la ciudad a su derecha.- En otros tipos de ejemplos pueden darse mas opciones con una única opción.
Un gran aporte a la confusion general. Podrias ensayar un poco o al menos hacerte un ayuda memoria. Asi es imposile seguirte y dificil aprender algo, de mi parte despues de la mitad del video ya me olvide a que venia el tema😔😔...
Buen video, una consulta. Hay alguna forma de que para los que ya tienen valor en la primera columna, le apliquen una validación automática sin necesidad de cambiar de valor?
Hola Laura Si en todas las pestañas el listado condicional y el dependiente están en las mismas columnas (A y B en mi ejemplo), simplemente cambia esta línea var hojaDatos = archivo.getSheetByName("Datos"); por var hojaDatos = archivo.getActiveSheet(); Me cuentas si te sirve. Saludos!
En validación de datos insertar lista desplegable solo se separan por comas los textos, como se pueden separar textos que son largos y que contienen comas dentro de ellos? Gracias
Hola Andres. Gracias por escribir! Desafortunadamente no se puede hacer ni encerrandolo en comillas. La solucion en este caso es poner la lista en un rango, puede ser en otra pestaña u otra columna, y ahi si puedes incluir el símbolo que quieras, y la validacion es de "lista a partir de un intervalo". Este metodo me gusta mas porque ademas es mas facil despues cambiar los elementos, agregar o eliminar. Ojala te te sirva. Saludos!
Gracias por el material expuesto, disculpe la pregunta pero como ubico los eventos así como en VBA aparecen de acuerdo al elemento que estamos manipulando, acá como los encuentro? o como me entero que existe un evento que se llama onEdit, por ejemplo ?
Hola Alexis. Uno puede referirse a la documentación de referencia que desafortunadamente está en ingles. Aquí te la dejo. En cuanto a los eventos o triggers, estan los siguientes onEdit(e) onOpen(e) onInstall(e) onSelectionChange(e) doGet(e) dePost(e) Estos dos ultimos son para webapps
Hola Juan, excelente video y es justo lo que necesito realizar, pero justo al final, cuando ya elijes el país, si crea la lista de ciudades, el problema que tengo es que esta ultima al querer elegir una ciudad, unicamente me dice "cargando", pero no pasa de alli. Ojala me puedas orientar el porque me pasa eso
@@azaeldgntb Hola! Ya encontré el error Este error pasa cuando la longitud de cada una de las listas es diferente, entonces esta trayendo muchos vaicos y por eso causa el error Reemplaza por favor la linea 18 del video, o sea esta: var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow()); Por lo siguiente var filas = 0 for(i=hojaLista.getMaxRows();i>0;i--){ if(hojaLista.getRange(i,indice).getValue()!=''){ filas=i; break; } } var rangoValidacion = hojaLista.getRange(2,indice,filas-1); Lo que hace esto es buscar el número real de filas que tiene esa lista Espero te funcione
@@JuanSGuzman Primero que nada muchas gracias por tomarte tu tiempo, no cualquiera lo hace, eso habla muy bien de ti y tu canal, lamentablemente no me ha funcionado, ahora no me da la segunda lista desplegable, la que antes se quedaba como "cargando..." :(
@@garantiasintex49 Hola! Revisate con este for(i=100;i>0;i--){ if(hojaLista.getRange(i,indice).getValue()!=''){ filas=i; break; } Reemplaza el ciclo anterior por este Creo que ya funciona Me cuentas!
Hola, primero que todo quiero agradecerte por el video fue muy útil, pero quisiera saber como puedo hacer lo mismo pero en otras columnas, ejemplo escoger el pais en la columna L y me salga la lista desplegable de ciudades en la columna M Muchas gracias
Hola Jennifer, claro que si. En la linea 26 if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos") cambia el 1 por la columna que quieres Un gran saludo!
@@JuanSGuzman Muchísimas gracias, me ayudo bastante 🙌🙌 nuevo fiel suscriptor😁 Explica super bien, lo felicito y le agradezco por compartir sus conocimientos 👏👏👏
Muy bueno el tutorial. ¿Que se podría hacer para que la celda ciudades deje ofrecer las opciones si la celda contigua de pais vuelve a estar vacia? Por que veo que una vez elegido un país la celda contigua muestra la lista desplegable e incluso permite elegir ciudades sin tener nada elegido en la celda país.
Me funcionó todo excelentísimo hasta que llegué al minuto 34:30 en donde pongo argentina y al poner las ciudades me sale un mensaje de Cargado... que no carga jamás nada :/ sabes a que se deberá?
Excelente Funciona, lo único que No logre hacer fue que me afectara únicamente la hojaDatos que ingresas en el min 18 si pudieses ayudarme te agradecería
Muchas gracias por compartir el codigo, fue muy buena la explicación. Tengo una duda. Si en mi hoja de sheet tengo varias listas desplegables y solo algunas celdas con listas dependientes y esta no inicia en la columna A, si no en la I (lista desplpegable) y J (lista desplegable dependiente de i), como podría yo hacer la aclaracion esto en el codigo??
Muy buen tutorial. Quisiera saber si es posible eliminar la lista desplegable si la primera lista desplegable está vacía (supongamos que lo borro eventualmente). Haciendolo así como está en el video a pesar de haber borrado la primera selección la segunda mantiene los valores de las ciudades del país borrado.
encontré una solución. Simplemente agregamos una columna vacía al inicio. Entonces también tomará esa columna de país "vacio" con su lista de ciudades vacías
Hola Juan, Cómo hago para que esas listas desplegables sean independientes de otro editor de la misma hoja ya que si yo elijo alguna opcion de la lista se le cambia al otro editor
Hola! Tienes razón, es un gran problema, pero no hay solución desde este método Para esto tendríamos que usar Google Forms, con el gran problema de que no podemos hacer listas condicionales en Forms LA otra opción es hacer formularios HTML, cosa que veremos en futuros videos. Es una gran solución pero un poco más larga de implementar Saludos!
Hola Juan, muy buen video. Tengo una consulta: este macro me es de mucha utilidad para agregar nuevos elementos en mi hoja, pero quisiera adaptar una con datos que ya tengo sin tener que cambiar cada celda que condiciona a otra una por una. Me explico: en mi caso tengo "municipios" que me condicionan la lista desplegable en "barrios" estoy cambiando uno por uno los municipios para que se actualicen las listas de la celda de barrios de la fila correspondiente ¿hay alguna forma de que si yo cambio el municipio en múltiples filas se me actualicen múltiples lista de datos en "barrios"? Gracias desde ya. Saludos
Hola Leandro Si, te entiendo. Esa es es una gran limitación de este código. Te toca "copiar y pegar" una por una Lo unico que se me ocurre es hacer otro codigo que funcione con rangos y que revise todo el rango. Interesante Lo dejo pendiente para otro video. Un gran saludo!
@@JuanSGuzman Gracias por tu respuesta, sí, ayer fui una por una, no es tanto el tiempo que se demora igualmente (tenía 500 filas) pero obviamente ahorraría bastante trabajo. Gracias de nuevo. Saludos!
Gran trabajo Juan 👏 una duda, cómo puedo hacer una lista desplegable con elementos fijos marcados en la macro? Espero puedas contestar, saludos desde México
Hola Juan! Muy bueno el video, gracias por compartir tu conocimiento. Ahora mismo estoy probando tu macro, sin embargo tengo un problema. Quiero ejecutar en ese mismo archivo dos validaciones. Una en una hoja ("ingresos") y otra en "Egresos" pero cuando usas el onEdit ya no puedo usarlo para la otra validación condicional. Puedes ayudarme con eso? Muchas gracias de antemano
Hola Flavio Mil gracias por tus palabras! usa el mismo onedit pero con dos condicional Cambia la tercera línea por var hojaDatos=archivo.getActiveSheet(); Y después el condicional lo haces así. Cambias el primer condicional y al final agregas un else if if(filaActiva>1 && colActiva==1 && hojaDatos.getName()=="Hoja 1"){ //Todo el código que genera el condicional }else if((filaActiva>1 && colActiva==1 && hojaDatos.getName()=="Hoja 2"){ //Copia el mismo código de arriba } Me cuentas Un gran saludo!
Hola otra cosa que puede mejorar el sistema es que la segunda lista desplegable se presente únicamente después de guardada la hoja en la nube por que mientras guarda, se puede elegir una de las opciones presentadas anteriormente que haya quedado como residuo a pesar que en la celda país se encuentre vacía.
Hola! Gracias por el video, muy buena la explicación. Tengo un problema, copié todo el códio tal cual y venía funcionando excelente. Pero luego de escribir la última línea (que en tu video es la línea 20) nada pasa en la hoja de cálculo, la lista ni siquiera aparece en otra hoja. Tampoco me salta ningún error en el código. ¿Tenés idea de lo que puede estar pasando? Gracias de antemano. Saludos
@@JuanSGuzman Gracias por la pronta respuesta. Te dejo el código... function onEdit(){ var Archivo = SpreadsheetApp.getActiveSpreadsheet(); var HojaCalendario = Archivo.getSheetByName('Calendario'); var CeldaActivaCategoria = HojaCalendario.getActiveCell().getValue(); var FilaActiva = HojaCalendario.getActiveCell().getRow(); var ColumnaActiva = HojaCalendario.getActiveCell().getColumn();
var HojaListas = Archivo.getSheetByName('Listas'); var Categorias = HojaListas.getRange(1,1,1,HojaListas.getLastColumn()).getValues(); if(FilaActiva>1 && ColumnaActiva ==1 && Archivo.getActiveSheet().getName()=='Calendario') { var IndiceCategorias = Categorias[0].indexOf(CeldaActivaCategoria)+1; var SubCategorias = HojaListas.getRange(2,IndiceCategorias,HojaListas.getLastRow()); var ReglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(SubCategorias).build(); HojaCalendario.getActiveCell().offset(0, 1).setDataValidation(ReglaValidacion); }
@@JuanSGuzman Si, no se que pasa. Si querés puedo compartirlo, solo decime a dónde... De todas formas seguiré investigando. Gracias por todo! Y reitero, buen tutorial! Saludos
@@noegarcia4943 me pasa algo similar, tome el codigo me corre bien, pero justo al final, cuando ya quiero elegir la lista desplegable resultante, solo me dice "cargando..." y de alli no pasa
Hola, no encuentro la opcion del editor de secuencias en el googlesheet del 2022, no se si hay alguna actualizacion y esta en otro lado o si se llama de otra forma. A ver si alguien sabe donde la encuentro.
@@JuanSGuzman Eso significa que no podemos hacer lo del video? A mi tampoco me aparece esa opción :( edit: ya busqué en su canal y vi en el video que podemos encontrar esa opción en Extensiones>Apps Script :)
Se puede replicar en google forms? Ejemplo, si algún empleado ingresa su código automáticamente aparezca su nombre completo y así evitar que escriban mal su nombre en una DB.
Hola Manuel Gracias por escribir! Se puede hasta cierto punto. Si podemos poner un desplegable de codigos (que pueden ser traidos de una lista de Sheets) o inclusive una validacion de datos que solo permita codigos de empleados, Lo que si no podriamos es ver en el mismo Google Forms el nombre del empleado. En otras palabras, Google Forms no tiene forma de "actualizarse en tiempo rea" como si se puede en un sheets. Tu puedes ejecutar algun codigo cuando alguien abre un formulario, pero no "durante". Por ejemplo no podriamos que busque el nombre del empleado en el momento en que alguien responda una pregunta con un codigo especifico. Una vez se envie el formulario si podriamos ejecutar un codigo para que, por ejemplo, el codigo que digito vaya al sheets y ya lo podamos corresponder al nombre y hacer mas cosas, pero tod dentro de Sheets. Ojalá te haya respondido la pregunta. Seguiré subiendo mas videos de Forms para seguir aclarando estos temas. Saludos!
Buenas de Argentina muy bien video. Te consulto no logro que con el .indexof me encuentre el resultado. La lista dice buscaría está en vertical no el horizontal como tenés en el ejemplo. Vos lo solucionas con paises[0].indexof....
Hola! Hice hace poco un video de desplegables para cuando tienes las listas en vertical Échale un ojo de pronto te sirve ruclips.net/video/gwju78H3kW4/видео.html Saludos!
Hola Juan! muchas gracias por tu video. He seguido tus pasos con la única diferencia de que mis variables tienen diferentes nombres y obtengo el siguiente error en la línea 20 "Exception: The parameters (SpreadsheetApp.DataValidationBuilder) don't match the method signature for SpreadsheetApp.Range.getDataValidation." Estoy trabajando en la nueva versión del script. ¿Qué puede ser? no entiendo muy bien como solucionarlo Muchas gracias de atemano por la ayuda
@@JuanSGuzman el que yo uso es el Excel de drive, que triste 😥, me parece super interesante aprender sobre este tema todos los días, que gran vídeo
4 года назад+1
Gracias por tus videos son muy buenos. Quisiera que me ayudes en algo respecto a listas. En excel yo trato de pegar en Validación de listas una formula con celdas por ejemplo: A4&M2 y me resulta obteniendo el nombre del intervalo, pero en el caso de google sheets no me resulta, como puedo hacer?
Hola Manuel Gracias por los amables comentarios. Desafortunadamente Sheets no permite formulas en su validación de listas. Siempre hay que hacerlo con listas auxiliares. Te dejo aquí unos videos donde explico varios métodos para crear las listas. Ya esas listas podrias armarlas como quieras con las funciones que quieras Listas desplegables dependientes con INDIRECTO - ruclips.net/video/klACWQX1U14/видео.html Listas desplegables con FILTER - ruclips.net/video/7r26Z4iLjNA/видео.html Listas desplegables con INDICE - ruclips.net/video/x82Kvn_x5tE/видео.html Espero te sirva. Un gran saludo!
hola, excelente ayuda...tengo una planilla donde esoty utilizando varias categorias con subcategorias, hice este script y me funciona perfecto, pero al elegir categoria, a la celda derecha pone muy bien las subcategorias, al elegir una, genera otra a la celda derecha siguiente...como puedo evitar eso? Muchas gracias
Hola Jorge En l afila 18 tienes este condicional if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos"){ si las categorias estan en la columna 1, ese codigo te deberia funcionar, porque lo que estamos diciendo es que solo lo ejecute SOLO cuando este ubicando en la columna 1 ME cuentas si te funciona revisando esa linea Saludos!
@@JuanSGuzman gracias nuevamente por tu buena voluntad, crreo lo tengo bien definido, pero me sigue creando listas desplegables en otras partes donde no las requiero...las que requiero funcionan perfect...gracias
Hola, por alguna razón no me aparece en herramientas el editor de secuencias de comando. Estuve buscando y no aparece una solución aparente mas que esté guardada en formato de excel, pero no es así. ¿Tendrás idea de qué pudiera estar pasando? Muchas gracias
Hola Juan en la linea 12 me dice Exception: La columna inicial del intervalo es demasiado pequeña. (línea 12, archivo "Código") esta todo igual a como tu lo tienes
Hola Juan, tengo un problema y es que el cambio de la primera lista desplegable se hace a través de una fórmula (pasa de celda vacía en blanco a un valor) y no clicando sobre la celda, abriendo el desplegable y eligiendo un valor. ¿Alguna solución para que la segunda lista desplegable se active con el cambio de la la primera a través de una fórmula?
Hola! Primero que nada gracias por el video, es lo que estaba buscando. Solo que tengo un problema con indexOf ("TypeError: Cannot read property 'indexOf' of undefined") Alguien sabe cuál es el problema? Gracias!
Hola! Normalmente ese error se debe a que el arreglo al que le estas haciendo IndexOf no existe Intenta con Logger.log(paises[0]) a ver que te muestra Me cuentas Saludos!
@@JuanSGuzman Pude solucionarlo, Gracias! Ahora el problema que tengo es que no me aparece la lista desplegable al lado de la lista condicional :( Qué tipo de problema puede ser? Porque recibe la última parte de la macro donde realizas esto y la tengo igual. Probé con un logger.log en las variantes del inicio y me sale "Información" sin importar la celda donde me encuentre, no sé si allí esté el problema. Desde ya, muchísimas gracias Juan
Excelente video, muchas gracias por la explicación, me ayudó mucho en mi trabajo.
Sin embargo, en la aplicación de este código me di cuenta que si tienes otras hojas, se desplegaba una lista (vacía) en la columa B de TODAS LAS HOJAS del archivo (y no solamente en la hoja de Datos ), cada vez que se modifica la columna A de otra hoja.
Por lo tanto, es necesario limitar la función onEdit para la hoja que estás interesado. Eso lo pude solucionar creando una nueva variable que toma el nombre de la hoja activa var nombreHoja = archivo.getActiveSheet().getSheetName(); y en condicional if, evaluando que el nombre de la hoja activa coincida con el nombre donde quieres que se aplique el código, para el caso del video "Datos", if ( nombreHoja =="Datos" && filaActiva>1 && columnaActiva ==1){
Espero que esto sea de ayuda para alguien.
Saludos!
Gran aporte
Mil gracias!
Conciso, muy bien explicado y sin musiquitas ni ediciones que no van al caso.
Mil gracias!
Comencé con un simple buscarV hace años, me emociona que gracias a tus videos, hoy esté haciendo macros sin tanto problema, muchas gracias!
Hola
Excelente! Me alegra ser de utilidad.
Un gran saludo!
Que felicidad, esto es lo que necesitaba, le escribí por otro vídeo pero no necesito ya el otro código, este quedo perfecto
Excelente!
Maravilloso (otra vez). Te puse seguir perfectamente todo el razonamiento que fuiste haciendo en la programación del código. Me sirvió un montón que no hayas sacado del video los errores que fuiste cometiendo. Muchas Gracias
Hola!
Que amables palabras! Mil gracias!
Saludos!
Justo el vídeo que necesitaba! Costó pero al final quedó!
Gracias genio!!
Excelente!
Muy bueno su video, me sirvio para comprender como funciona eso. Gracias
Hola!
Que amables palabras! Mil gracias!
Saludos!
Increíble! Contenido de altísimo valor. Muy recomendado.
Mil gracias Iván!
De verdad estoy muy agradecido con estos videos, excelente explicacion.
Mil gracias por el comentario!
Hola amigo, quiero felicitarte por el video, me sirvió de forma espectacular. Estoy muy agradecido. Saludos
Mil gracias Julio Cesar
Un gran saludo!
muy buena la explicación!!! justo lo que estaba buscando, lo felicito por su conocimiento.
Hola
Excelente! Me alegra ser de utilidad.
Un gran saludo!
excelente!! el único que lo explica por dios!!
Muy buen video, la verdad que utilizo mucho a diario Google drive y Google sheets , y desde hace bastante tiempo había querido aprender a utilizar el editor de secuencias y este video está muy bien explicado y funcionó perfecto gracias
Excelente!
Juan... Mil y mil gracias por este video, muy bien explicado.
Mil gracias por tus palabras!
Tome su buen LIKE buen HOMBRE me has solucionado la vida!!! buenisimo tutorial saludos desde BOLIVIA!!!
Gracias parce, estuvo un poquito largo el video pero gracias!. saludos desde Argentina, un peruano en Cordoba.
JAja
Con tal de que sea util!
Yo veo los videos de youtube a 2x, por si pasa eso
Saludos!
Justo lo que buscaba! Gracias!
Excelente!
Excelente video 😃✨ y gran instructor👍🏽
Mil gracias!
Gracias por la ayuda Juan, mucho éxito en todo tus proyectos.
Hola muhcas gracias por el video, muy útil. (35:40, creo que funcionó porque ya estaba chile dentro de la lista de paises)
Hola!
Tienes toda la razón!!!
Despues de 5 meses hasta ahora me doy cuenta de ese error 🤦
En teoría con lo que hago después funcionaria agregando cualquier otro país, pero mil gracias por darte cuenta y por escribirlo
Un gran saludo!
gracias, es justo lo que buscaba!
Hola
Excelente! Me alegra ser de utilidad.
Un gran saludo!
@@JuanSGuzman Hola! Me iba todo genial, hasta que quise hacer otro script igual en otra hoja y llamando a otra hoja auxiliar. En las 2 hojas me llama a la misma lista desplegable, será porque la variable es igual? Te dejo los 2 códigos. A ver si me puedes decir donde estoy errando. Gracias!
EL PRIMER ARCHIVO ES DESPLEGABLEUF.GS
function onEdit() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaIngresos = archivo.getSheetByName("INGRESOS");
var idcons = hojaIngresos.getActiveCell().getValue();
var filaActiva = hojaIngresos.getActiveCell().getRow();
var columnaActiva = hojaIngresos.getActiveCell().getColumn();
var hojaLista = archivo.getSheetByName("Auxiliar2");
var consorcios = hojaLista.getRange(2,1,1,hojaLista.getLastColumn()).getValues();
if (filaActiva>4 && columnaActiva ==3 && hojaIngresos.getName()=="INGRESOS"){
var indice = consorcios[0].indexOf(idcons)+1;
var rangoValidacion = hojaLista.getRange(3,indice,hojaLista.getLastRow());
var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build();
hojaIngresos.getActiveCell().offset(0,2).setDataValidation(reglaValidacion );
}
}
EL SEGUNDO ARCHIVO ES DESPLEGABLEPROVEED.GS
function onEdit() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaGastos = archivo.getSheetByName("GASTOS");
var idcons = hojaGastos.getActiveCell().getValue();
var filaActiva = hojaGastos.getActiveCell().getRow();
var columnaActiva = hojaGastos.getActiveCell().getColumn();
var hojaLista = archivo.getSheetByName("Auxiliar3");
var consorcios = hojaLista.getRange(2,1,1,hojaLista.getLastColumn()).getValues();
if (filaActiva>4 && columnaActiva ==3 && hojaGastos.getName()=="GASTOS"){
var indice = consorcios[0].indexOf(idcons)+1;
var rangoValidacion = hojaLista.getRange(3,indice,hojaLista.getLastRow());
var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build();
hojaGastos.getActiveCell().offset(0,2).setDataValidation(reglaValidacion );
}
}
@@charlywar1979 Hola!
Es otro archivo de GS para el mismo sheets? O son 2 sheets diferentes?
Saludos!
Buena explicaciónm y funciona.
Excelente!
Mil gracias Francisco!
demasiado buenos videos mi hermano
Hola Juan, qué tal? En primer lugar darte las gracias por el tutorial. Es una auténtica pasada. Te comento mi caso. Estoy usando este tutorial para crear una hoja de presupuesto con una primera columna con los servicios disponibles, una segunda con los niveles y una tercera con los precios. Pero yo al crear la validación de datos solo dejo que se muestre en el desplegable los datos correspondientes a su condicional concreta. Por ejemplo en la primera fila de la columna Servicios solo aparece el servicio 1, de tal forma que en la columna de Niveles solo cargan los niveles correspondientes al servicio 1 y en la columna precio solo aparece el precio del nivel escogido. Hasta aquí bien. El problema me viene cuando quiero duplicar el código para hacer que en la fila de abajo haga lo mismo con otro servicio distinto. Cuando lo hago y selecciono el Servicio 2 en la primera columna, en la segunda veo efectivamente los niveles correspondientes al servicio 2, pero no me aparece el desplegable en la columna 3 y deja de funcionar la primera. Espero haberme explicado. Te agradecería la ayuda. Un gran abrazo Y enhorabuena por este trabajo
Hola!
Pronto traeré un video para multiples condicionales
Saludos!
suscrito!!! Que buen trabajo, funciona excelente, podrías meterle mente a uno de conversión de números a letras para el caso del dinero, igual que este para varias filas.
Mil gracias
Ya lo anoto.
Saludos!
03:11 Validación Datos- En hoja, Seleccionar encabezados
Gracias por tu video!!!
Muchas Gracias Crack! Explicando el mejor top!
Sorry to be off topic but does anyone know of a way to log back into an instagram account??
I stupidly lost the account password. I appreciate any assistance you can offer me!
@Kingston Jensen Instablaster :)
@Landon Misael i really appreciate your reply. I found the site through google and im in the hacking process now.
Looks like it's gonna take a while so I will get back to you later with my results.
@Landon Misael it worked and I now got access to my account again. I'm so happy:D
Thanks so much you saved my account!
@Kingston Jensen glad I could help :D
Excelente video, gracias.
Quisiera hacerte una consulta, como hago para poner otro desplegable condicional (otros datos) en la misma hoja, pero en distintas columnas.
Gracia fenomeno! Tuve inconvenientes para aplicar el codigo porque mis categorias estaban en filas y no columnas. Entonces se me hacia una matriz en lugar de un array.
Hola!
En ese caso es más fácil, porque no tienes que hacer mapeo ni nada
Un gran saludo!
Muchas gracias por la explicación. He realizado el ejemplo y ha funcionado muy bien. Una consulta por favor, si tengo varias pestañas (desde enero a diciembre) en las que deseo aplicar las listas desplegables, aparte tengo mi pestaña de "Listas" (en el mismo documento) ¿Cómo podría hacer para que el código afecte a las pestañas de enero a diciembre, pero no a la de "Listas"?
Le agradezco de antemano 🙌
Hola yoselin, pudiste solucionar este tema?
Me encantan las listas desplegables dependientes . Es mucho más fácil el Excel . Qué lástima que no se igual en Drive
Tienes razón. Ahi hay mucho donde mejorar para Sheets
Saludos!
danke, sie haben mir dieses video im unterricht gezeigt und jetzt weiß ich mehr über das programmieren für dich, ich möchte in polen helfen
Gracias!!!!
Hola!
Gracias a ti por tomarte el trabajo de comentar!
Saludos!
Hola hola Juan, tus videos son excelentes y me he apoyado mucho de ellos.
En esta ocasión no encuentro el error, al parecer tengo el código bien, ya lo revise muchísimas veces comparadolo con el tuyo, todo funciona bien excepto al final. cuando ya se elige la lista desplegable resultante de la primera, esta segunda no carga información, solo me dice "cargando..." y allí se queda, pensé que talvez tardaría en cargar información, asi que la deje mucho tiempo y no.
Hola!
Me dejas ver tu archivo por favor para revisarlo?
enviámelo a guzman.sheets@gmail.com
Saludos!
Hola!
Ya encontré el error
Este error pasa cuando la longitud de cada una de las listas es diferente, entonces esta trayendo muchos vaicos y por eso causa el error
Reemplaza por favor la linea 18 del video, o sea esta:
var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow());
Por lo siguiente
var filas = 0
for(i=hojaLista.getMaxRows();i>0;i--){
if(hojaLista.getRange(i,indice).getValue()!=''){
filas=i;
break;
}
}
var rangoValidacion = hojaLista.getRange(2,indice,filas-1);
Lo que hace esto es buscar el número real de filas que tiene esa lista
Espero te funcione
Hola @JuanSGuzman podemos poner formatos con script a las listas desplegables? tipo CHIP.... como lo haría de forma dinámica...o con el formato de la lista
Desafortunadamente, a hoy, no hay forma de activar o desactivar el chip desde código (que yo conozca)
Saludos!
Hola Juan! Muchísimas gracias por el código, soy una completa neófita en estos temas y gracias a tu excelentes explicaciones decidí animarme a intentarlo por mi cuenta. Lamentablemente fracasé, ya que al final me ocurre el mismo error de otras personas (no me despliega el menú en la segunda columna). Ya estuve revisando todos los comentarios y tus respuestas para ver si con eso lograba corregirlo pero nada. ¿Qué puede estar sucediendo? Cabe señalar que al darle ejecutar no me reporta ningún error.
Hola Liliana
Me dejas ver tu código por favor?
Saludos!
wao!! lo copie tal cual para ver si es cierto que funcionaba y siiii !! excelente ejercicio ... de programación.
function onEdit() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaArticulos = archivo.getSheetByName("Articulos");
var departa = hojaArticulos.getActiveCell().getValue();
var filaActiva = hojaArticulos.getActiveCell().getRow();
var columaActiva = hojaArticulos.getActiveCell().getColumn();
var hojaCata = archivo.getSheetByName("Catalogo");
var categos = hojaCata.getRange(1,1,1,hojaCata.getLastColumn()).getValues();
if(filaActiva>1 && columaActiva==2){
var indice = categos[0].indexOf(departa);
var rangoValidacion = hojaCata.getRange(3,indice+1,hojaCata.getLastRow());
var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build();
hojaArticulos.getActiveCell().offset(0,1).setDataValidation(reglaValidacion);
}
}
Gracias por comentar!
Excelente explicación funciona a la perfección, pero me falta conocimiento. Hay forma de ponerse en contacto para crear
un reporte?
Hola Juan S Guzman;
Primero que todo quiero agradecerte por el vídeo el cual esta muy bien detallado, pero quisiera saber como puedo hacer lo mismo para otras columnas, por ejemplo escoger el país en la columna P y me salga la lista desplegable de ciudades en la columna Q.
Gracias de Antemano.
Hola!
Te refieres a solo cambiar la posición de la columna? o repetir el mismo desplegable condicional varias veces en la misma hoja, pero en distintas columnas?
Saludos!
Gracias, me sirvió muchísmo!
Muchas Gracias Juan Guzmán por el video, muy útil, Excelente aporte,
Tengo una consulta, se podría utilizar en OnEdit dos veces en una sola función.
Me explico un poco, la funcionalidad de la lista desplegable en la columna uno funciona y muestra en la columna 2 el respectivo filtro, pero en esa misma hoja de cálculo unas columnas más adelante, por ejemplo en la columna H se quiere hacer los mismo.
Le cambio el var listaActivos = hojaLista.getRange(1,8,1,11).getValues(); y en if(filaActiva>1 && columnaActiva ==8) para inicie el rango más adelante, pero deja de funcionar.
Hola!
Puedes hacer dos funciones diferentes. Llama la primera desplegable1() y la segunda dseplegable2()
Luego pones las dos en un onEdit
function onEdit(){
desplegable1()
desplegable2()
}
Saludos!
@@JuanSGuzman Holaaa intenté hacer esto pero no funciona :(
@@paulaandreapayares6428 Me alegra que al fin hayas podido Paula!
TE QUIERO
Jaja ;)
Genial!!! Juan. Consulta, se puede hacer esto pero en Forms? es decir hay alguna forma de vincular esto con un forms o hacerlo de frente en código en el forms o algo asi?, quiero crear un forms que me selecciones según respuesta opciones distintas pero no quiero que sean secciones del forms si no dentro de las mismas preguntas.
Hola Christian
Hasta donde se, no se puede en Forms, te tocaría en un formulario Html
Saludos!
Excelente tutorial Juan, saludos desde Brasil, por favor.... tengo un problema para desarrollar un codigo Script en que me muestre el primer elemento de la lista desplegable en lugar de en blanco? dos semana y aun nada....
Hola Augusto
Mil gracias por tus palabras!
Te refieres como a un predeterminado?
O sea crear desplegables que tengan como predeterminado el primer elemento?
Un gran saludo!
hola, está súper clara la explicación, una consulta adicional...si quiero que las dependencias se repitan también en otras columnas, qué tendría que hacer? replicar todo el código tantas veces como columnas es en las que quiero que se replique?
Hola!
Si es el mismo desplegables, solo tienes que agregar mas condiciones para que no repitas tanto tu codigo
Seria algo asi
if(filaActiva>1 && (colActiva==1 || colActiva==4)
Me cuentas como te va
Saludos!
@@JuanSGuzman consulta, cuando es con código solo puede haber para una lista desplegable? estoy tratando de hacer más de dos listas desplegables dependientes, pero uno de los códigos invalida el otro
Hola!
Lo más fácil es hacer dos funciones
function funcion1(){}
function funcion2(){}
Y despues las metes dentro del onEdit maestro
function onEdit(){
funcion1()
funcion2()
}
Saludos!
@@JuanSGuzman muchas gracias, lo revisaré
@@juniorbarrantes3097 Me cuentas
Hola 😱 muy interesante, no conozco nada de esto pero siguiendo los pasos logré hacerlo. Estoy elaborando un reporte para mi trabajo y necesito llenar la tabla todos los meses ¿Como hago para tener la misma validacion en distintas hojas del libro?
Hola Ceci
En el condicional en vez de poner nombreHoja=="Hoja 1" puedes poner varias hojas con el operador ||
seria algo asi
if(nombreHoja=="Hoja 1" || nombreHoja=="Hoja 2")
Estoy haciendo una serie de videos nuevos donde lo explico un poco más en detalle
Saludos!
BUEN VIDEO, NO ENTENDI NADA IGUAL
Tengo un archivo que me corrió y me funcionó perfecto la primera vez, tengo que funcionar varias listas condicionales a lo largo de mi archivo. No se si puedas apoyarme revisando mi archivo o con una asesoría personalizada
Hola Pamela
Escribeme a sebastian@juansguzman.com
Saludos!
Hola Juan!, muchas felicidades para ti, gracias por tu real interés en ayudar.
me gustaría saber como puedo hacer esto en google forms, quisiera pedir desde forms tres destinos donde quisieras viajar, por lo tanto, debo mostrar tres veces estos filtros condicionados pero no se como hacerlo o si es que se puede hacer.
Te agradecería mucho me pudieras orientar.
Hola Cristina
Espero estés bien
Desafortunadamente no se puede hacer exactamente lo mismo en Forms
Una opción es usar las Secciones. Aquí te dejo un video. No es lo más dinámico pero para pocas opciones como en tu caso, puede servir muy bien
Aquí te dejo un video
ruclips.net/video/ixIFMgynny0/видео.html
Saludos!
Hola Juan. Muchas gracias por el video! Tengo una consulta eso sí... pretendo usar esta funcionalidad en un archivo plantilla para presupuestos, el asunto es que cuando lo duplico y le cambio el nombre al archivo, el app script ya no funciona; en cambio si se duplica y mantiene el nombre si funciona. ¿Sabes si se puede hacer algo para que el script siga funcionando en copias del archivo con un nombre distinto? Te agredecería mucho la respuesta!
Hola Felipe
Prueba entrando la primera vez y dándole play desde el editor de secuencia solo para darle la autorización a ver si eso te lo soluciona
Me cuentas!
Hola Juan! Antes que nada muchas gracias por el apoyo, y validando en la opción herramientas de mi drive, no me aparece la opción para meterme en ingresar el código, justo antes del minuto 5
Hola MArgot
Estas en un archivo de Sheets? o es un XLS?
Saludos!
Excelente contenido, tienes el dato de algún curso online donde se puede aprender GAS?
Hola.
Hay uno bueno pero en ingles
courses.benlcollins.com/p/apps-script-blastoff
Espero pronto sacar un curso completo introductorio.
Saludos!
@@JuanSGuzman Apoyo la idea de tu curso! si es pago, si no lo es, se ve que tus conocimientos son sólidos y no tendría inconvenientes en seguirte! Gracias!
Hola juan muchas gracias, por el vdeo, mi consulta es como activo el editor de secuencias, ya que no me aparece
Hola!
Una opción es que estés trabajando.sobre un excel
Saludos!
Dos correcciones o adiciones
1. Para que no les ocurra el error de que aparezca desplegable en otras hojas, por favor reemplazar la línea 16 por:
if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet.getName()=="Datos"){
2. Cuando las listas de las subcategorías son de distintas longitudes les puede causar un error y quedarse "Cargando...". Para solucionar esto:
Reemplaza por favor la linea 18 del video, o sea esta:
var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow());
Por lo siguiente
var filas = 0
for(i=hojaLista.getMaxRows();i>0;i--){
if(hojaLista.getRange(i,indice).getValue()!=''){
filas=i;
break;
}
}
var rangoValidacion = hojaLista.getRange(2,indice,filas-1);
Lo que hace esto es buscar el número real de filas que tiene esa lista
Espero les solucione si se enfrentan a esta situación
Saludos!
No me funciona y deja de funcionar el script que se habia trabajado sabes por que ocurre?
@@alexander19187 Siii
Culpa mia
Siempre me pasa lo mismo! Me faltan los parentesis...por no probar antes de contestar 🤦
Cambiala por esta
if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos"){
Saludos!
Mil gracias Juan!
Buen día Juan, intenté realizar la corrección 2 ya que me aparece en mi lista "loading...", sin embargo no me funciona y deja de trabajar el script, ya no aparece siquiera la opción de la lista. Ojalá me puedas ayudar!
Buenas, muchas gracias por los videos. Los estoy viendo a todos para poder aprender todo lo posible.
Me pasaba el mismo problema con la columna de la lista dependiente, quedaba CARGANDO sin poder seguir avanzando; intente corregir con la linea de código, sin embargo ahora no me funciona el scrip.
pego el código.
function onEdit() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaDatos = archivo.getSheetByName("Datos");
var pais = hojaDatos.getActiveCell().getValue();
var filaActiva = hojaDatos.getActiveCell().getRow();
var columnaActiva = hojaDatos.getActiveCell().getColumn();
var hojaLista = archivo.getSheetByName("lista");
var paises = hojaLista.getRange(1, 1, 1, 8).getValues();
if (filaActiva > 1 && columnaActiva == 1 && archivo.getActiveSheet().getName() == "Datos") {
var indice = paises[0].indexOf(pais) + 1;
var filas = 0
for (i = hojaLista.getMaxRows(); i > 0; i--) {
if (hojaLista.getRange(i, indice).getValues() != "") {
filas = i;
break;
}
}
var reglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(rangoValidacion).build();
hojaDatos.getActiveCell().offset(0, 1).setDataValidation(reglaValidacion);
}
}
gracias por todos, saludos
Buenas, tengo que hacer si o si todo el proceso o puedo solo copiar el código final y editar las celdas y hojas de referencia? Si se puede así por favor podes compartir el código? Desde ya muchas gracias por compartir tu conocimiento! Saludos desde Argentina
Hola Pablo.
Gracias por el comentario.
En el blog encuentras el código completo.
juansguzman.com/lista-desplegable-condicional-en-varias-filas-google-sheets-apps-script/
Saludos!
@@JuanSGuzman necesito hacer lo del video, luego en esa hoja podria aplicar formulas tipo buscarv o ya no me dejaría? y otra consulta, cobras por hacer esta configuración, la verdad que vi el video 2 veces y leí lo del blog pero estoy trabadisimo. Es para un colegio necesito que cuando alguien elija PRIMERO_A (x ej) la segunda lista dependiente me pueda arrojar datos de los alumnos que pertenecen a ese curso
Hola Pablo. Hasta ahora vi tu comentario. En teoria puedes despues usar buscarv o cualquier otra formula. Si tienes un problema en particular cuentame y lo trabajamos en un video. Si prefieres, me contactas al correo guzman.sheets@gmail.com
Hola Juan, muy buen vídeo, tengo una duda, no me aparece en mi hoja de sheets la opción de editor de secuencia de comandos, cómo se habilita? gracias quedo atento
HOla Harold
A partir del año pasado el menú cambió
Busca en Extensiones > Apps Script
Saludos!
Otra cosa buena sería que si una opción de la lista deplegable solo tiene una opción elegible, entonces la muestre directo sin tener que elegirla. Supongamos que en la lista países tenemos el Vaticano y su única ciudad es la propia ciudad del Vaticano se ahorraría tiempo si al elegir el estado del vaticano solo apareciera la ciudad a su derecha.- En otros tipos de ejemplos pueden darse mas opciones con una única opción.
Un gran aporte a la confusion general. Podrias ensayar un poco o al menos hacerte un ayuda memoria. Asi es imposile seguirte y dificil aprender algo, de mi parte despues de la mitad del video ya me olvide a que venia el tema😔😔...
Gracias por las recomendaciones!
Quiero pensar que he mejorado en 2 años
Saludos!
Excellent
Gracias
Gracias!!
Buen video, una consulta. Hay alguna forma de que para los que ya tienen valor en la primera columna, le apliquen una validación automática sin necesidad de cambiar de valor?
Si se puede pero si ya tienes varios datos con el valor puesto creo que sería mas fácil validarlo con una formula normal en la hoja de cálculo.
Hola Juan, Me hace la función de despegar una lista desplegable en TODAS las hojas, no solamente en la que determine como get sheetbyname
Hola!
Te dejo este video donde aclaro ese tema
ruclips.net/video/kg6TVFrDpqY/видео.html
Saludos!
Hola Juan gracias por el video como puedo replicar el código para varias hojas ? en el mismo documento
Hola Laura
Si en todas las pestañas el listado condicional y el dependiente están en las mismas columnas (A y B en mi ejemplo), simplemente cambia esta línea
var hojaDatos = archivo.getSheetByName("Datos");
por
var hojaDatos = archivo.getActiveSheet();
Me cuentas si te sirve.
Saludos!
Buenazo, gracias
Mil gracias por tus palabras Fernando!
En validación de datos insertar lista desplegable solo se separan por comas los textos, como se pueden separar textos que son largos y que contienen comas dentro de ellos? Gracias
Hola Andres.
Gracias por escribir!
Desafortunadamente no se puede hacer ni encerrandolo en comillas.
La solucion en este caso es poner la lista en un rango, puede ser en otra pestaña u otra columna, y ahi si puedes incluir el símbolo que quieras, y la validacion es de "lista a partir de un intervalo".
Este metodo me gusta mas porque ademas es mas facil despues cambiar los elementos, agregar o eliminar.
Ojala te te sirva.
Saludos!
Gracias por el material expuesto, disculpe la pregunta pero como ubico los eventos así como en VBA aparecen de acuerdo al elemento que estamos manipulando, acá como los encuentro? o como me entero que existe un evento que se llama onEdit, por ejemplo ?
Hola Alexis.
Uno puede referirse a la documentación de referencia que desafortunadamente está en ingles.
Aquí te la dejo.
En cuanto a los eventos o triggers, estan los siguientes
onEdit(e)
onOpen(e)
onInstall(e)
onSelectionChange(e)
doGet(e)
dePost(e)
Estos dos ultimos son para webapps
Hola Juan, excelente video y es justo lo que necesito realizar, pero justo al final, cuando ya elijes el país, si crea la lista de ciudades, el problema que tengo es que esta ultima al querer elegir una ciudad, unicamente me dice "cargando", pero no pasa de alli.
Ojala me puedas orientar el porque me pasa eso
Hola!
Me dejas ver tu archivo por favor para revisarlo?
enviámelo a guzman.sheets@gmail.com
Saludos!
@@JuanSGuzman muchísimas gracias por tu pronta respuesta, ya te lo he compartido, estoy pendiente, SALUDOS.
@@azaeldgntb
Hola!
Ya encontré el error
Este error pasa cuando la longitud de cada una de las listas es diferente, entonces esta trayendo muchos vaicos y por eso causa el error
Reemplaza por favor la linea 18 del video, o sea esta:
var rangoValidacion = hojaLista.getRange(2,indice,hojaLista.getLastRow());
Por lo siguiente
var filas = 0
for(i=hojaLista.getMaxRows();i>0;i--){
if(hojaLista.getRange(i,indice).getValue()!=''){
filas=i;
break;
}
}
var rangoValidacion = hojaLista.getRange(2,indice,filas-1);
Lo que hace esto es buscar el número real de filas que tiene esa lista
Espero te funcione
@@JuanSGuzman Primero que nada muchas gracias por tomarte tu tiempo, no cualquiera lo hace, eso habla muy bien de ti y tu canal, lamentablemente no me ha funcionado, ahora no me da la segunda lista desplegable, la que antes se quedaba como "cargando..." :(
@@garantiasintex49 Hola!
Revisate con este
for(i=100;i>0;i--){
if(hojaLista.getRange(i,indice).getValue()!=''){
filas=i;
break;
}
Reemplaza el ciclo anterior por este
Creo que ya funciona
Me cuentas!
Hola, primero que todo quiero agradecerte por el video fue muy útil, pero quisiera saber como puedo hacer lo mismo pero en otras columnas, ejemplo escoger el pais en la columna L y me salga la lista desplegable de ciudades en la columna M
Muchas gracias
Hola Jennifer, claro que si.
En la linea 26
if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos")
cambia el 1 por la columna que quieres
Un gran saludo!
@@JuanSGuzman Muchísimas gracias, me ayudo bastante 🙌🙌 nuevo fiel suscriptor😁 Explica super bien, lo felicito y le agradezco por compartir sus conocimientos 👏👏👏
@@jenniferbolanos6673 Mil gracias Jennifer!
Buen día,
Una pregunta cuando no está en la columna A, si no en el país está en la columna Z y la ciudad en la AA, ahí que se haría?
Hola!
Para eso estan estas 2
var colDesplegable=3;
var colSegundoDesplegable=4;
cambialo por 26 y 27
Saludos!
Muy bueno el tutorial. ¿Que se podría hacer para que la celda ciudades deje ofrecer las opciones si la celda contigua de pais vuelve a estar vacia? Por que veo que una vez elegido un país la celda contigua muestra la lista desplegable e incluso permite elegir ciudades sin tener nada elegido en la celda país.
Me funcionó todo excelentísimo hasta que llegué al minuto 34:30 en donde pongo argentina y al poner las ciudades me sale un mensaje de Cargado... que no carga jamás nada :/ sabes a que se deberá?
Hola Camila
Dejame ver como tienes el código
Saludos!
Excelente Funciona, lo único que No logre hacer fue que me afectara únicamente la hojaDatos que ingresas en el min 18 si pudieses ayudarme te agradecería
Muchas gracias por compartir el codigo, fue muy buena la explicación. Tengo una duda. Si en mi hoja de sheet tengo varias listas desplegables y solo algunas celdas con listas dependientes y esta no inicia en la columna A, si no en la I (lista desplpegable) y J (lista desplegable dependiente de i), como podría yo hacer la aclaracion esto en el codigo??
Hola!
Solo cambia en la linea 16 "columnaActiva==1" por "columnaActiva==9"
Te deberia funcionar
Saludos!
Muy buen tutorial. Quisiera saber si es posible eliminar la lista desplegable si la primera lista desplegable está vacía (supongamos que lo borro eventualmente). Haciendolo así como está en el video a pesar de haber borrado la primera selección la segunda mantiene los valores de las ciudades del país borrado.
encontré una solución. Simplemente agregamos una columna vacía al inicio. Entonces también tomará esa columna de país "vacio" con su lista de ciudades vacías
@@g.ocampos Muy elegante y simple solución. Felicitaciones!
Hola Juan, Cómo hago para que esas listas desplegables sean independientes de otro editor de la misma hoja ya que si yo elijo alguna opcion de la lista se le cambia al otro editor
Hola!
Tienes razón, es un gran problema, pero no hay solución desde este método
Para esto tendríamos que usar Google Forms, con el gran problema de que no podemos hacer listas condicionales en Forms
LA otra opción es hacer formularios HTML, cosa que veremos en futuros videos.
Es una gran solución pero un poco más larga de implementar
Saludos!
Hola Juan, muy buen video. Tengo una consulta: este macro me es de mucha utilidad para agregar nuevos elementos en mi hoja, pero quisiera adaptar una con datos que ya tengo sin tener que cambiar cada celda que condiciona a otra una por una. Me explico: en mi caso tengo "municipios" que me condicionan la lista desplegable en "barrios" estoy cambiando uno por uno los municipios para que se actualicen las listas de la celda de barrios de la fila correspondiente ¿hay alguna forma de que si yo cambio el municipio en múltiples filas se me actualicen múltiples lista de datos en "barrios"? Gracias desde ya.
Saludos
Hola Leandro
Si, te entiendo. Esa es es una gran limitación de este código. Te toca "copiar y pegar" una por una
Lo unico que se me ocurre es hacer otro codigo que funcione con rangos y que revise todo el rango.
Interesante
Lo dejo pendiente para otro video.
Un gran saludo!
@@JuanSGuzman Gracias por tu respuesta, sí, ayer fui una por una, no es tanto el tiempo que se demora igualmente (tenía 500 filas) pero obviamente ahorraría bastante trabajo.
Gracias de nuevo.
Saludos!
Cual es el video en el cual puedes conectar las hojas como mencionas en el video
Gran trabajo Juan 👏 una duda, cómo puedo hacer una lista desplegable con elementos fijos marcados en la macro? Espero puedas contestar, saludos desde México
Hola!
A que te refieres con elementos fijos
Saludos!
SE PUEDEN EN DIFERENTES LINEAS DECODIGO PONER DISTINTAN CELDAS FILAS O COLUMNAS ACTIVAS ?
Hola!
No te entiendo bien
Saludos!
@@JuanSGuzman YA PUDE CON OTRO VIDEO TUYO, MUCHAS GRACIAS SON EXCELENTES ERES UN CRACK EN ESTO.
@@ESTADISTUMEPP Excelente!
Hola Juan! Muy bueno el video, gracias por compartir tu conocimiento. Ahora mismo estoy probando tu macro, sin embargo tengo un problema. Quiero ejecutar en ese mismo archivo dos validaciones. Una en una hoja ("ingresos") y otra en "Egresos" pero cuando usas el onEdit ya no puedo usarlo para la otra validación condicional. Puedes ayudarme con eso? Muchas gracias de antemano
Hola Flavio
Mil gracias por tus palabras!
usa el mismo onedit pero con dos condicional
Cambia la tercera línea por var hojaDatos=archivo.getActiveSheet();
Y después el condicional lo haces así. Cambias el primer condicional y al final agregas un else if
if(filaActiva>1 && colActiva==1 && hojaDatos.getName()=="Hoja 1"){
//Todo el código que genera el condicional
}else if((filaActiva>1 && colActiva==1 && hojaDatos.getName()=="Hoja 2"){
//Copia el mismo código de arriba
}
Me cuentas
Un gran saludo!
Hola otra cosa que puede mejorar el sistema es que la segunda lista desplegable se presente únicamente después de guardada la hoja en la nube por que mientras guarda, se puede elegir una de las opciones presentadas anteriormente que haya quedado como residuo a pesar que en la celda país se encuentre vacía.
¿Qué parte tendría que repetir si quiero agregarle 2 opciones mas, por ejemplo: Países, ciudades, colonias y calles.
Hola!
Aquí te dejo un tutorial donde lo hago
ruclips.net/video/fLZCo5KH_D8/видео.html&lc=Ugy_ARmlaTLQh-_M1054AaABAg.9BkkZ6Wtaz89MyUF8NsEOD
Saludos!
Hola! Gracias por el video, muy buena la explicación.
Tengo un problema, copié todo el códio tal cual y venía funcionando excelente. Pero luego de escribir la última línea (que en tu video es la línea 20) nada pasa en la hoja de cálculo, la lista ni siquiera aparece en otra hoja. Tampoco me salta ningún error en el código.
¿Tenés idea de lo que puede estar pasando?
Gracias de antemano.
Saludos
Hola Noe
Dejame ver el código por favor
Saludos!
@@JuanSGuzman Gracias por la pronta respuesta. Te dejo el código...
function onEdit(){
var Archivo = SpreadsheetApp.getActiveSpreadsheet();
var HojaCalendario = Archivo.getSheetByName('Calendario');
var CeldaActivaCategoria = HojaCalendario.getActiveCell().getValue();
var FilaActiva = HojaCalendario.getActiveCell().getRow();
var ColumnaActiva = HojaCalendario.getActiveCell().getColumn();
var HojaListas = Archivo.getSheetByName('Listas');
var Categorias = HojaListas.getRange(1,1,1,HojaListas.getLastColumn()).getValues();
if(FilaActiva>1 && ColumnaActiva ==1 && Archivo.getActiveSheet().getName()=='Calendario') {
var IndiceCategorias = Categorias[0].indexOf(CeldaActivaCategoria)+1;
var SubCategorias = HojaListas.getRange(2,IndiceCategorias,HojaListas.getLastRow());
var ReglaValidacion = SpreadsheetApp.newDataValidation().requireValueInRange(SubCategorias).build();
HojaCalendario.getActiveCell().offset(0, 1).setDataValidation(ReglaValidacion);
}
}
Salduos!
@@noegarcia4943 Hola! Muy raro. Esta bien el codigo. Tocaria ver todo el proyecto y hacerle unas depuraciones a ver que puede ser
Un gran saludo!
@@JuanSGuzman Si, no se que pasa.
Si querés puedo compartirlo, solo decime a dónde... De todas formas seguiré investigando.
Gracias por todo! Y reitero, buen tutorial!
Saludos
@@noegarcia4943 me pasa algo similar, tome el codigo me corre bien, pero justo al final, cuando ya quiero elegir la lista desplegable resultante, solo me dice "cargando..." y de alli no pasa
Si se hace una copia del Sheets donde se tiene ese código, sigue funcionando el programa?
Asi es. No funciona con todos los códigos, pero con este particular, si
Saludos!
Hola, no encuentro la opcion del editor de secuencias en el googlesheet del 2022, no se si hay alguna actualizacion y esta en otro lado o si se llama de otra forma. A ver si alguien sabe donde la encuentro.
Hola!
Ya viene un video donde explico las posibles razones
Una razón frecuente es que estas trabajando con un archivo excel
Saludos!
@@JuanSGuzman Eso significa que no podemos hacer lo del video?
A mi tampoco me aparece esa opción :(
edit: ya busqué en su canal y vi en el video que podemos encontrar esa opción en Extensiones>Apps Script :)
@@mashaovr Excelente!
Se puede replicar en google forms? Ejemplo, si algún empleado ingresa su código automáticamente aparezca su nombre completo y así evitar que escriban mal su nombre en una DB.
Hola Manuel
Gracias por escribir!
Se puede hasta cierto punto.
Si podemos poner un desplegable de codigos (que pueden ser traidos de una lista de Sheets) o inclusive una validacion de datos que solo permita codigos de empleados,
Lo que si no podriamos es ver en el mismo Google Forms el nombre del empleado.
En otras palabras, Google Forms no tiene forma de "actualizarse en tiempo rea" como si se puede en un sheets. Tu puedes ejecutar algun codigo cuando alguien abre un formulario, pero no "durante". Por ejemplo no podriamos que busque el nombre del empleado en el momento en que alguien responda una pregunta con un codigo especifico.
Una vez se envie el formulario si podriamos ejecutar un codigo para que, por ejemplo, el codigo que digito vaya al sheets y ya lo podamos corresponder al nombre y hacer mas cosas, pero tod dentro de Sheets.
Ojalá te haya respondido la pregunta.
Seguiré subiendo mas videos de Forms para seguir aclarando estos temas.
Saludos!
Muchas gracias Juan, muy útil tu canal. Gracias por tu respuesta.
Buenas de Argentina muy bien video. Te consulto no logro que con el .indexof me encuentre el resultado. La lista dice buscaría está en vertical no el horizontal como tenés en el ejemplo. Vos lo solucionas con paises[0].indexof....
Hola!
Hice hace poco un video de desplegables para cuando tienes las listas en vertical
Échale un ojo de pronto te sirve
ruclips.net/video/gwju78H3kW4/видео.html
Saludos!
Hola Juan! muchas gracias por tu video. He seguido tus pasos con la única diferencia de que mis variables tienen diferentes nombres y obtengo el siguiente error en la línea 20 "Exception: The parameters (SpreadsheetApp.DataValidationBuilder) don't match the method signature for SpreadsheetApp.Range.getDataValidation." Estoy trabajando en la nueva versión del script. ¿Qué puede ser? no entiendo muy bien como solucionarlo
Muchas gracias de atemano por la ayuda
Hola!
Verifica que al final le hayas dado .build() a tu validación
Saludos!
Buenos Días, excelente video, pero en excel no tengo la opción de Editor de secuencias de comando, que podría hacer Ayudaaaa!, gracias
Hola!
Desafortunadamente para los archivos de excel no aplican estos códigos.
Saludos!
@@JuanSGuzman el que yo uso es el Excel de drive, que triste 😥, me parece super interesante aprender sobre este tema todos los días, que gran vídeo
Gracias por tus videos son muy buenos. Quisiera que me ayudes en algo respecto a listas. En excel yo trato de pegar en Validación de listas una formula con celdas por ejemplo: A4&M2 y me resulta obteniendo el nombre del intervalo, pero en el caso de google sheets no me resulta, como puedo hacer?
Hola Manuel
Gracias por los amables comentarios.
Desafortunadamente Sheets no permite formulas en su validación de listas.
Siempre hay que hacerlo con listas auxiliares.
Te dejo aquí unos videos donde explico varios métodos para crear las listas. Ya esas listas podrias armarlas como quieras con las funciones que quieras
Listas desplegables dependientes con INDIRECTO - ruclips.net/video/klACWQX1U14/видео.html
Listas desplegables con FILTER - ruclips.net/video/7r26Z4iLjNA/видео.html
Listas desplegables con INDICE - ruclips.net/video/x82Kvn_x5tE/видео.html
Espero te sirva.
Un gran saludo!
M esta pasando que aun estando en OnEdit, no hace los mismo con el 5. Le doy a ejecutar, y no vuelve a aparecer el 5 asi se hagan cambios!
Que hacer?
No entiendo bien lo que te pasa
HAbría que ver con mas detalle el problema
Saludos!
holaaaaa, de casualidad no hay alguna actualización hoy en día para omitir toda esta parte??
Hola!
Así es
Aquí te dejo el video
ruclips.net/video/s_dew3INyfU/видео.html
Saludos!
hola, excelente ayuda...tengo una planilla donde esoty utilizando varias categorias con subcategorias, hice este script y me funciona perfecto, pero al elegir categoria, a la celda derecha pone muy bien las subcategorias, al elegir una, genera otra a la celda derecha siguiente...como puedo evitar eso?
Muchas gracias
Hola Jorge
Asegurate que el condicional solo funcione para la columna de la categoria
Me cuentas si funciona
Saludos!
@@JuanSGuzman gracias por tu respuesta, pero no se como me aseguro de eso..
Hola Jorge
En l afila 18 tienes este condicional
if(filaActiva>1 && columnaActiva ==1 && archivo.getActiveSheet().getName()=="Datos"){
si las categorias estan en la columna 1, ese codigo te deberia funcionar, porque lo que estamos diciendo es que solo lo ejecute SOLO cuando este ubicando en la columna 1
ME cuentas si te funciona revisando esa linea
Saludos!
@@JuanSGuzman gracias nuevamente por tu buena voluntad, crreo lo tengo bien definido, pero me sigue creando listas desplegables en otras partes donde no las requiero...las que requiero funcionan perfect...gracias
@@jorgedegoyeneche6364 Muy raro
Cuando quieras me envias una copia y la reviso rapidamente
Saludos!
Excelente video! Me aparece error dice “exception: the starting column of the range is too small” que quiere decir o que tengo que corregir ahí?
Hola Paulina
En que linea te pasa?
Saludos!
@@JuanSGuzman ya pude! Me había faltado un paréntesis JAJA mil gracias me ayudó bastante el video✨
@@paulinaarnold6499 Excelente!
Hola, por alguna razón no me aparece en herramientas el editor de secuencias de comando. Estuve buscando y no aparece una solución aparente mas que esté guardada en formato de excel, pero no es así. ¿Tendrás idea de qué pudiera estar pasando? Muchas gracias
Hola!
Hace poco cambiaron el menú
Ahora está en "Extensiones" > "Apps Script"
Saludos!
Otras pregunta, que pasa si no tengo una sola hoja si no que tengo mas, como llamo a la hoja donde requiero el condicional de varias filas?
Ya vi!!!!n Jajajajajaja Gracias!
Excelente!
Hola Juan en la linea 12 me dice Exception: La columna inicial del intervalo es demasiado pequeña. (línea 12, archivo "Código") esta todo igual a como tu lo tienes
Quisiera saber como puedo aplicar las funciones cuando los datos los tengo en orden vertical
Hola! El método cambia un poco, ya que tenemos que usar "filter".
Tengo planeado un video explicando este método
Un gran saludo!
@@JuanSGuzman Hola Julio, muy bueno tus videos, espero sigas subiendo nuevas actualizaciones, y respecto a este metodo con filter lograste publicar?
@@bladimirhelizalde8482
SI, ya hay varios videos más en el canal. Aquí te dejo una lista
ruclips.net/p/PLvrIQ0wr2BTLMju7Iz5WkbyPi621WqFCt
Saludos!
Hola Juan, tengo un problema y es que el cambio de la primera lista desplegable se hace a través de una fórmula (pasa de celda vacía en blanco a un valor) y no clicando sobre la celda, abriendo el desplegable y eligiendo un valor. ¿Alguna solución para que la segunda lista desplegable se active con el cambio de la la primera a través de una fórmula?
Hola!
Difícil
Te tocaría con un activador y usando un "recorrido masivo" como en este video
ruclips.net/video/8Utinr3rNI8/видео.html
Saludos!
Hola! Primero que nada gracias por el video, es lo que estaba buscando.
Solo que tengo un problema con indexOf ("TypeError: Cannot read property 'indexOf' of undefined")
Alguien sabe cuál es el problema?
Gracias!
Hola!
Normalmente ese error se debe a que el arreglo al que le estas haciendo IndexOf no existe
Intenta con Logger.log(paises[0]) a ver que te muestra
Me cuentas
Saludos!
@@JuanSGuzman Pude solucionarlo, Gracias!
Ahora el problema que tengo es que no me aparece la lista desplegable al lado de la lista condicional :(
Qué tipo de problema puede ser? Porque recibe la última parte de la macro donde realizas esto y la tengo igual.
Probé con un logger.log en las variantes del inicio y me sale "Información" sin importar la celda donde me encuentre, no sé si allí esté el problema.
Desde ya, muchísimas gracias Juan