Construir un listado de tareas o to-do list en GOOGLE SHEETS - Parte 1
Vložit
- čas přidán 25. 06. 2020
- En este video vemos como hacer un listado de tareas dinámico con la ayuda de Google Sheets y código de Google Apps Script
➤Puedes encontrar el código y la plantilla de este video (y los más de 200 videos del canal) inscribiéndote en mi academia JuanSGuzman - juansguzman.teachable.com/.
Allí mismo, encontrarás más de 15 cursos completos de Sheets, Forms y Apps Script
➤Inscríbete en el curso gratis "Descubriendo Google Sheets" de mi academia de Sheets y Automatización aquí - juansguzman.teachable.com/p/d...
Videos Relacionados
To-Do List Parte 2 - • Listado de tareas por ...
➤También me puedes apoyar en mi patreon: / juansguzman
Suscríbete al canal donde recibirás nuevos videos semanales de Sheets, Forms y más.
Cualquier sugerencia, pregunta o inquietud, te invito a comentar más abajo
#googlesheets #googleappsscript
Excelente video. Por favor seguir con el desarrollo. Muchas gracias.
Hola Alejandro
Muchas gracias!
Tienes toda la razón, he demorado mucho la segunda parte. Espero que salga muy pronto.
Saludos!
Bestial tus tutoriales amigo. Mucha felicidades. Muy completos.
Mil gracias por tus palabras!
Un Genio! me sirvió un montón! Juan como hago para que en la parte de "HECHO" las tareas se acomoden de manera que las ultimas tareas tildadas queden PRIMERA en la parte de HECHO?
Excelente simplemente increíble
Gracias!
Hola Juan gracias por tus videos, te quería preguntar ¿si este método se puede aplicar en un Dashboard con query, en el que con una casilla de verificación pueda modificar los datos de la base original del query?
Gracias, excelente contenido.
Mil gracias Hugo!
gracias por hacerlo sencillo amigo, saludos
Mil gracias por tus palabras!
Hola, muy clara la explicación.....Gracias :) Soy principiante y tengo una duda: el script no se ejecuta automaticamente cuando realizó check en la tarea debo darle ejecutar donde tengo el codigo...veo un boton que dice "implementar" debo realizar eso? o como lo parametrizo para que sea automatico
Hola maestro, excelente video, tengo un solo problema, en el comando donde usted coloca la hora, como agrego el huso horario? ya que si bien se agrega la hora, no es la de mi pais, es la de otro, gracias de antemano
Gracias Juan. Sigue con el desarrollo del proyecto
Pronto se viene la parte 3! Saludos!
you all probably dont give a shit but does someone know of a trick to log back into an Instagram account??
I was dumb lost the password. I would love any tricks you can give me!
@Makai Victor instablaster =)
@Trace Sonny thanks so much for your reply. I found the site through google and I'm waiting for the hacking stuff now.
Seems to take quite some time so I will get back to you later with my results.
@Trace Sonny It did the trick and I now got access to my account again. Im so happy:D
Thank you so much you saved my ass !
Hola, muchas gracias.
Gracias a ti!
Me encanta!!!!! No se si realizaste la siguiende parte. A mi sí que me interesa. Buscaré por si ya lo realizaste
He visto que tienes la parte 2. Lo veré hoy. ¡Gracias!
ME alegro que te haya gustado
Saludos!
Hola Juan
Excelente explicación. Tengo una pregunta, estoy usando tu código para generar una macro que me permita copiar y pegar la fila en la misma hoja al dar click en la casilla de verificación. Sin embargo, no quiero que se vaya al final de la hoja sino que me inserte una nueva fila y la copie debajo de la que inicialmente di click
Si me puedes ayudar, te lo agradecería muchísimo
Saludos
Hola Andres
Aquí te dejo uno de mis últimos videos donde hago esto
czcams.com/video/d4ycAOD4DPc/video.html
Saludos!
Hola profesor juan gracias por tu lista de videos muy buenas juan segi todos los pasos que tu isiste pero cuando doy cli no se borra ni se pega juan me podría ayudar por favor 😁
es muy bueno
Gracias!
Hola! gracias por el video. En lugar de la hoja de destino podría ser ¿libro de destino? es decir que se pueda enviar a otro libro de Sheets
Claro que si
en vez de getActiveSpreadsheet usas openByUrl o openById
Saludos!
Hola muy buenas tardes hoy he visto su tutorial, me parece muy interesante, una critica constructiva es que no se ve bien lo que ud. trasmite sobre la hoja.
le sugiero que coloque la cámara como más cerca para que uno pueda ver bien la hoja, gracias
Hola! @JuanSGuzman : tengo un inconveniente.. esta macro la aplique exactamente pero. sucede que me copia la fila en la hojaDestino, pero NO ELIMINA LA FILA EN ; en la hoja de origen
Hola!
Que metodo estas usando
Saludos!
Hola buenas me gusto mucho tu tutorial.
Me gustaría saber en automatización en hojas de cálculo.
Tenes algo armado para ponerme al corriente ya que lo veo avansado para mi conocimiento
Hola
Revisate mi academia donde puedes aprender desde 0 si quieres, o bajarte las plantillas
juansguzman.com/academia
Saludos!
Hola esta excelente, solo una idea , cuando la persona que realice la tarea podría enviar un mail al encargado del proyecto como avisó de tarea cumplida.
Buena idea!
Mil gracias por la sugerencia!
Saludos!
21:11 Hasta aquí vamos bien, todo se ha ejecutado como es. Tarde un poco mas de una hora en ver por que no se ejecutaba bien y luego porque no lo copiada a la otra Hoja. CONSEJO: Revisen bien el código escrito.
Gracias por el aporte!
Hola! Profesor; Juan S Guzman; ademas de agradecerle por su compromiso y enseñanza... le comento que soy un neófito en la materia de MACROS, apenas es mi primera experiencia con ellos. Requiero elaborar una TO-DO LIST, personalizada... trate de transcribir el mismo código que nos enseño en este video y no logro grabarlo ni correrlo... por favor me puede ayudar con la revisión del mismo? por su atención y comprensión, mil gracias.
function moverFilaHecho() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaOrigen = archivo.getActiveSheet();
var nombreOrigen = hojaOrigen.getName();
var hojaDestino = archivo.getSheetByName("Hecho");
var celdaActiva = hojaOrigen.getActiveCell();
var filaActiva = celdaActiva.getRow();
var colActiva = celdaActiva.getColumn();
var valor = celdaActiva.getValue();
if(filaActiva>2 && colActiva ==2 && valor== "Hecho" && nombreOrigen=="Tareas"){
var rangoOrigen = hojaOrigen.getRange(filaActiva, 1,1,hojaOrigen.getlastColumn());
var rangoDestino = hojaDestino.getRange(hojaDestino.getLastRow()+1,1);
// Cortar y Pegar Fila
rangoOrigen.moveTo(rangoDestino);
hojaOrigen.deleteRow(filaActiva);
hojaDestino.getRange(hojaDestino.getLastRow); hojaDestino.getLastColumn()+1).setValue(new Date()).setNumberFormat("mm/dd/yyyy hh:mm");
}
}
function onEdit(){
moverFilaHecho();
}
}
master mis mejores deseos para este año! Esto funcionaria como un crm? saludos parce desde mexico
Hola Roberto!
Ya viste el video de contactos? Creo que ese es mas cercano a un CRM que este
Aquí te lo dejo
czcams.com/video/cMs3iL9yik8/video.html
Saludos!
@@JuanSGuzman enterado master saludos y gracias por tus aportes y tu atención a todos 🙏🏻🙏🏻🙏🏻
@@robertoceratti5523 Gracias a ti!
25:06 Con razón no conseguía porque me colocaba la fecha en formato Estadounidense a pesar de que fui a cambiar la configuración de la hoja. Al colocar primero el día, se solucionó.
Ya esta viendo como hacer con este otro video: czcams.com/video/lu1lCUFqCDU/video.html pero en mi caso, encontre la forma mas fácil y estaba en la misma linea de código.
Excelente que hayas solucionado!
Y con excel se puede hacer lo mismo?
Muy buena explicacion. Comentame, tengo que realizar programaciones de visitas de 5 personas por ejemplo a la misma hora en diferente lugar. hay forma de que google calendar sea mi guia en la programacion o tengo que hacer un calendario pepetuo en la hoja de calculo y de ser el caso como puedo agregar el agendamiento o las tareas de estas 5 personas. tendras algun tutorial de este proceso que te comento. claro esto en la hoja de calculo. Gracias!! y muy buena explicacion sigue asi!!
Hola Javier
Mil gracias por tus palabras!
En 1 o 2 semanas sale un pequeño video que hace algo parecido
Me cuentas que te parece
Un gran saludo!
Hola, cómo se puede bajar la celda al último lugar de la página una vez que se marca como ok?
puedes usar esta linea
hoja.getRange(hoja.getLastRow()+1,1).activate()
Saludos!
Hola. Me podrías explicar porfa cómo es que se configura esa parte del contador de tareas completas. Veo en la plantilla básica que incluye función concatenar y sumar , pero no he logrado incluirlo en la que estoy creando. Gracias por la ayuda.
Hola!
Esto se puede hacer de varias maneras
La más fácil es que configures tus casillas de verificación con valores personalizados, para que cuando se chequee te de 1 y de resto 0
con eso, después solo sumas la columna y te da el número de tareas completas
Si ya después quieres hacer un porcentaje de tareas completadas, haces un contar y divides la suma anterior por este contar
Ojalá haya sido claro
Saludos!
El contador usa la siguiente formula =CONCATENAR(CONTAR.SI($A$4:$A$51;VERDADERO); "/"; CONTARA($C$4:$C$51); " completadas ") la columna A es la de las casillas y la C la del texto, puedes remplazar esos valores por los de tu tabla
@@meme-sp5rl Muchas gracias por tu respuesta!!! Lo voy a intentar :)
Estimado Juan, por favor seguir con el desarrollo.
Pongo a consideración, desarrollar que base responsable se copia la tarea a otra hoja del responsable y envié un correo donde le notifique que se asigno una tarea.
Hola Marcelo
Muy buena sugerencia!
Pronto tendrás la segunda parte.
Saludos!
@@JuanSGuzman Excelente, gracias.
Exelente
@@andresdavidsotocontreras7516 Esta semana viene la parte 2! Por fin! Saludos!
Hola Juan como copio tu codigo?
no me funciono :( sera que google sheets a cambiado? El codigo es correcto, pero no se activa en la hoja.
tengo problemas para que se coloque la "fecha hecho" y todos los comandos están bien. Cuál podría ser el inconveniente?
Hola! Te sale error? o simplemente no te pone la fecha?
Saludos
Cuando copio el código tal cual y no me corre, cual puede ser el motivo? Es la primera vez que estoy corriendo estas macros en Sheet
Hola Mayra.
Envíame por aquí el código completo y te lo reviso.
Saludos!
@@JuanSGuzman muchas gracias por tu tiempo.
function moverFilaHecho(){
var archivo = SpreadsheetApp.getActiveSpreadsheet()
var hojaOrigen = archivo.getActiveSheet()
var nombreOrigen = hojaOrigen.getName()
var hojaDestino = archivo.getSheetByName("Hecho");
var celdaActiva = hojaOrigen.getActiveCell();
var filaActiva = celdaActiva.getRow();
var colActiva = celdaActiva.getColumn();
var valor = celdaActiva.getValue();
if(filaActiva>=30 && colActiva==24 && valor=="hecho" && nombreOrigen=="Bandeja De Entrada"){
var rangoOrigen = hojaOrigen.getRange(filaActiva, 1,1,hojaOrigen.getLastColumn());
var rangoDestino = hojaDestino.getRange(hojaDestino.getLastRow()+1,1);
//Cortar y Pegar Fila
rangoOrigen.moverTo(rangoDestino);
hojaOrigen.deleteRow(filaActiva);
hojaDestino.getRange(hojaDestino.getLastRow(),hojaDestino.getLastColumn()).setValue(new Date()).setNumberFormart("mm/dd/yyyy hh:mn");
}
}
function onEdit(){
moverFilaHecho();
}
son proyectos que anoto a partir de la fila 30 la casilla verificación final que da por terminado el proyecto está en la columna 24 y quiero que me elimine la fila de la hoja activa y me la pase a la hoja de "Hecho o Terminado"
Hola Juan, el problema es cuando en una hoja hay varios usuarios y a uno de ellos no se le activa las ordenes del macro. Supongo que será porque se le deberá dar permiso o algo así. Yo, quien soy quien ha hecho el script no tengo problema, pero una persona que tiene acceso a esa hoja, al hacer check en tarea completada, no se le va a la pestaña de "Hecho".
Ya está solucionado. El problema era que había protegido la hoja "Hecho" y la otra persona no tenía permisos, por tanto, la fila no se cortaba y pegaba de una hoja a otra.
@@jaimepelegri5475 Hola!
Me alegro que hayas podido solucionar
Saludos!
Si comparto mi archivo y alguien mas que no sea yo da click en la casilla de veriifcacion no lo mueve, solo lo hace si yo soy el que la marca, se puede solucionar esto de alguna manera?
estoy con el mismo problema :/
Me imagino que debe ser editor para que pueda autorizar la macro y el script. Lo han intentado así?
cual es el vídeo de cortar y pegar filas con macro?
Hola Joel.
Aqui te lo dejo.
czcams.com/video/1qW5d7IAFBQ/video.html
Saludos!
Juan... alguna idea del porque no me toma el formato condicional cuando quiero es mover una linea a otra hoja, segun los pasos que indicas en este video: czcams.com/video/vkWnBEw7F3w/video.html
- Será que en la configuración del activador no hay una opción para que se ejecute la macro cuando se edita una hoja?
Hmmm
Yo creo que eso es mejor copiandolo con copyTo.
La otra semana sale un video del tema
Saludos!
No me sirvió? Me aparece apps script en mi lienzo y es muy diferente al tuya no me sale error pero lo ejecuto y no hace nada
Hola Ferney!
Confirma primero que no estas trabajando con un .xls
Saludos!
Cuál es el video donde explica cómo hacer esos códigos??
Puedes encontrar unos tutoriales de iniciación aquí
czcams.com/video/DTutoOoDsAw/video.html
czcams.com/video/wllJoWydNIM/video.html
Saludos!
Hola @Juan hice la implementación del código pero no me funciona en la pagina, no migra las columnas ni nada.
Hola Matias
Que error te sale
Saludos!
ahi lo solucione jajaa le habia errado a una formula muchas gracias master por contestar
@@matiax451 Excelente que hayas podido. Saludos!
Juan un favor, me genera el error que dice que puede no leer la propiedad 'getActiveSheet' of null (línea 3, archivo "Código") y el código es el mismo de tu video, solo que le cambié las hojas a donde hace referencia:
function moverFilaHecho() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaOrigen =archivo.getActiveSheet();
var nombreOrigen =hojaOrigen.getName();
var hojaDestino =archivo.getSheetByName('FIRMADAS');
var celdaActiva =hojaOrigen.getActiveCell();
var filaActiva =celdaActiva.getRow();
var colActiva =celdaActiva.getColumn();
var valor =celdaActiva.getValue();
if(filaActiva>=2 && colActiva==10 && valor=="Cobrado" && nombreOrigen=="PPTO") {
var rangoorigen =hojaOrigen.getRange(filaActiva, 1,1, rangoOrigen.getLastColumn());
var rangoDestino =hojaDestino.getRange (hojaDestino.getLastRow()+1,1);
Te agradezco de antemano.
Hola Walfer
Pregunta:
El código lo abriste desde un Sheets? O desde un archivo Google Apps Script aparte?
Saludos!
Buen día Juan, lo abrí desde un libro de Google Sheets que ya tenía.
Hola!
Te sigue saliendo el error?
Dejame ver una copia del archivo para ver que puede pasar
el codigo esta bien : muy raro.
Saludos!
Hola comunidad, tengo un problema, hice todo paso a paso en mi proyecto, pero no me funciona. Como puedo saber cuál es el error?
Ya lo pude solucionar, eran los permisos!
Me alegro que hayas solucionado
Saludos!
Hola Juan, es curioso como los datos de origen en una pestaña de respuestas de un formulario, no deja cortarlos a otra pestaña. ¿Alguna solución?
A que te refieres JAime. TE sale algún error?
Saludos!
@@JuanSGuzman sí, dice que no puede eliminar filas de un formulario. Es decir, lo que he hecho es añadir una columna con casillas de validación a una hoja de respuestas de un formulario. Al clicar en una casilla de validación no "corta" la fila, poniendo un mensaje tipo "No se pueden eliminar filas de un formulario" (A través del script que propones en el video. No sé si me explico.
Lo que pretendo es enviar los candidatos descartados a otra pestaña haciendo clic en casilla de validación en una columna de la pestaña de donde vienen los datos del formulario.
@@jaimepelegri5475 Hola JAime! Disculpa no responderte por aquí. Creo que ya lo logramos (o ya casi!) Saludos!
@@JuanSGuzman qué bueno, en ello estamos! Vamos!
Es genial pero lo hice igualito y no me da, no se si se deba hacer algo adicional. Te agradecería mucho tu ayuda y te seguiría sin dudar
Hola Brayan
Mil gracias por tus palabras!
Te sale algún error en particular?
Un gran saludo!
@@JuanSGuzman No, simplemente no hace el traspaso de información
@@bryanmontoya87 Envíame el código y lo miro
Saludos!
hola juan que pena mo lestarlo tanto usted por favor me podria responder yo tego todo como uste lo iso pero no corre el codigo[ function moverFilaHecho() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaOrigen =archivo.getActiveSheet();
var nombreOrigen =hojaOrigen.getName();
var hojaDestino=archivo.getSheetByName('Hecho');
var celdaActiva =hojaOrigen.getActiveCell();
var filaActiva =celdaActiva.getRow();
var colActiva =celdaActiva.getColumn();
var valor =celdaActiva.getValue();
if(filaActiva>=2 && colActiva==2 && valor=="hecho" && nombreOrigen=="Bandeja de Entrada"){
var rangoOrigen =hojaOrigen.getRange(filaActiva, 1,1,hojaOrigen.getLastColumn());
var rangoDestino =hojaDestino.getRange(hojaDestino.getLastRow()+1,1)
hojaOrigen.insertRowsAfter(hojaOrigen.getRange('A1:A').getValues().length,1);
// Cortar y Pegar Fila
rangoOrigen.moveTo(rangoDestino);
hojaOrigen.deleteRow(filaActiva);
hojaDestino.getRange(hojaDestino.getLastRow(),hojaDestino.getLastColumn()).setValue(new Date()).setNumberFormat("mm/dd/yyy hh:mm");
}
}
function onEdit(){
moverFilaHecho();
}
udted por favor melo revisa
gracias espero su respuesta
SIGALO
POR FAVOR
Hola Juan muy buenos tus videos, tengo un inconveniente el codigo me ejecuta bien pero no me traslada ala información al nuevo archivo, me podrías colaborar por favo.
function moverFilaHecho() {
var archivo = SpreadsheetApp.getActiveSpreadsheet();
var hojaOrigen =archivo.getActiveSheet();
var nombreOrigen =hojaOrigen.getName();
var hojaDestino=archivo.getSheetByName('CERRADO');
var celdaActiva =hojaOrigen.getActiveCell();
var filaActiva =celdaActiva.getRow();
var colActiva =celdaActiva.getColumn();
var valor =celdaActiva.getValue();
if(filaActiva>=2 && colActiva==14 && valor=="hecho" && nombreOrigen=="DATOS"){
var rangoOrigen =hojaOrigen.getRange(filaActiva, 1,1,hojaOrigen.getLastColumn());
var rangoDestino =hojaDestino.getRange(hojaDestino.getLastRow()+1,1)
// Cortar y Pegar Fila
rangoOrigen.moveTo(rangoDestino);
hojaOrigen.deleteRow(filaActiva);
hojaDestino.getRange(hojaDestino.getLastRow(),hojaDestino.getLastColumn()).setValue(new Date()).setNumberFormat("mm/dd/yyy hh:mm");
}
}
function onEdit(){
moverFilaHecho();
}
Quedo al pendiente profe, gracias