Copiar y pegar en Google Sheets con Google Apps Script
Vložit
- čas přidán 14. 06. 2021
- Hoy te muestro varias maneras en las que podemos copiar filas específicas de nuestras tablas a otras hojas, y hasta a otros libros.
🗞️ Encontrarás la parte 2 de esta serie aquí - • Copiar y pegar filas y...
👍 Si te ha gustado este video, te encantará el curso gratis "Aprende Google Sheets en 2 horas". Aquí puedes obtener acceso juansguzman.com/cursogratis
📋 Puedes encontrar el código y la plantilla de este video (y los más de 350 videos del canal) inscribiéndote en un plan mensual o anual en mi membresía JuanSGuzman - juansguzman.com
🎓Allí mismo, encontrarás una serie de cursos de Copiar y Pegar con Google Apps Script y Google Sheets asi como más de 75 cursos completos de Sheets, Forms y Apps Script. Aquí puedes verlo juansguzman.com/curso/24-copi...
☎️ Si necesitas asesoría personalizada, ofrezco algunas horas a la semana de este servicio. juansguzman.com/consultoria
🔔 Suscríbete al canal donde recibirás nuevos videos semanales de Sheets, Forms, Apps Script y más.
Aquí algunos canales donde me puedes seguir y apoyar:
📨 - Newsletter: juansguzman.com/boletin
➤Patreon: juansguzman.com/patreon
➤Telegram: juansguzman.com/telegram
➤Instagram: juansguzman.com/instagram
ⓕ - Facebook: juansguzman.com/facebook
➤Tiktok: juansguzman.com/tiktok
𝕏 - (Twitter): juansguzman.com/twitter
Cualquier sugerencia, pregunta o inquietud, te invito a comentar más abajo
Muy claro todo, agradezco tu esfuerzo por enseñar tu sabiduría al mundo
Mil gracias Fernando!
De lo mejor que vi en este tema de Appscripts de Google sheets. Por lo menos para el que recién se inicia es excelente!!!
Hola!
Mil gracias por las palabras!
Saludos!
Antes de nada saludos, es una forma muy interesante de copiar mediante código, como siempre muy buen aporte.
Mil gracias por tus palabras!
Muchas gracias. Excelente aporte.
Mil gracias por tus palabras!
Muy bueno juan. Saludos.
Hola!
Que amables palabras! Mil gracias!
Saludos!
Excelente Juan ..
Mil gracias!
Estaria bueno un video que explique el filtro de fechas en appscript, por ejemplo >=fecha1 y
Muchas gracias por tu tiempo al explicar, pregunta es posible copiar todo una fila de un archivo a otro archivo ?
utiliza la opción de de sheetID para identificar las url origen y destino
Buen dia juan te consulto como podria hacer para copiar y pegar dos veces seguidas ( es decir que copie y pegue los datos dos veces en dos filas una abajo de la otra automaticamente )
Hola, muchas gracias por compartir tu conocimiento.
Tengo una duda, ¿cómo copias valores de una columna según según un valor o condición?
Hola Carlos
Mil gracias por tus palabras!
En la parte 2 creo que encontrarás la respuesta
czcams.com/video/GY-MusvzE8M/video.html
Un gran saludo!
Excelente la manera de explicar como siempre, hay alguna forma de copiar o eliminar las columnas?
Mil gracias!
Claro que si
Se eliminan con hoja.deletColumn(numColumna)
Se copian con los mismos métodos que hemos visto pero seleccionando la columna entera con getRange(1,numColumna,hoja.getMAxRows())
Saludos!
@@JuanSGuzman Muchísimas gracias!! 🤗
Buenos días.
Muchas gracias por sus videos.
Los de query me han ayudado mucho, al igual que este....sobre todo la parte final en la que se llevan las filas con "SI" de la hoja origen a la hoja destino.....aunque a mi, personalmente, me vendría mejor con botones, uno para llevar los datos de origen a destino y otra para borrar o poner como "NO" todas las celdas con la casilla de verificación.
Porqué digo esto, porque si me equivoco y doy al check en una línea por error, ya ha mandado los datos, y hay que corregir el error a mano.
He visto que tiene otro video de macros para borrar, lo veré pues seguro que también me ayuda.
Quiero usar la función query y esta macro o similar, para pasar los datos de asistencia de alumnos de:
1. La hoja origen = alumnos por clase diarios, que "filtro " con query
2. A la hoja destino = acumulado de asistencia por alumnos y/o clase
A partir de esta hoja quiero hacer estadísticas de asistencia.
Gracias nuevamente por su ayuda.
Gracias por el comentario
Tienes razón, dependiendo de cada caso se podrían mezclar estos videoss
Saludos!
@@JuanSGuzman Gracias a usted.
Lamentablemente vi su video de limitaciones en el movil después de este, :(((
Y veo que los botones no funcionan usando Google sheets en el movil.
Por lo tanto solo me queda la opción onedit ...lo que me puede llevar a errores involuntarios.
Se puede hacer otra función onedit que borre uno o más líneas en la hoja destino????
@@nakhaforo204 Hola! Si, el onE]dit puede ser muy flexible y puedes hacer muchas cosas
Saludos!
Profe es increible como de cada video puedo sacar una idea para programar algo, en este video queria saber como compiar un archivo o una hoja de un sheet a otro lugar pero termine aprendiendo como setear el nombre del archivo por comandos (tambien lo queria saber). Todavia no vi pero todavia quiero saber como hacer una copia del archivo en otro lugar. Y como saber el url del archivo tambien.
Hola!
Mil gracias por tus palabras!
Hay unos videos específicos de copiar y el de enviar archivos pdf ahi tambien te muestro como copiar (y lo del url)
Saludos!
Ya sin verlo, gracias
Jaja. Nooo, hay que verlo primero, jaja!
Hola, gracias por compartir una pregunta, como hacer para copiar dos o mas rangos de la misma fila que no sean contiguos en la misma fila de destino
Hola!
Esa es un poco mas compleja
Te dejo este video
czcams.com/video/wHh_T73bzMM/video.html
Saludos!
Hola Juan se que este tema no tiene que ver con mi pregunta pero no ubico un video que me de luces de como hacer lo que necesito, tengo un valor que cambia diariamente por ejemplo la cotización del dolar y necesito hacer llevar ese valor a una columna con su fecha respectiva por dia para asu vez hacer ciertas estadísticas y gráficas, también aplica para el saldo de una cuenta, muchas gracias de antemano
Hola Marisol
Ya viste este video?
czcams.com/video/u9hXc6fASqg/video.html
Saludos!
Saludos, gracias por los videos!
Tengo una pregunta, como puedo usar GAS o una fórmula de Sheets para copiar el valor de una celda x o y cantidad de veces?
Ejemplo, el nombre Rafael tiene un valor de 2 y José un valor de 5, necesito copiar en una columna diferente esos nombres la cantidad de veces que se da en esos valores (Rafael aparecerá 2 veces, José 5 veces). Tengo una lista de 400 nombres en los que tengo que hacer esto con un total de 900 valores totales. Muy agradecido con la ayuda.
Yo lo haría con un for y en la condición le pondría el valor de esas celdas
Hola como estas Juan, Agradecerte por tu contenido ya que me ha servido de bastante ayuda.
Tengo una consulta a ver si me puedes ayudar.
Como puedo a traves de uns google apps script o GAS, copiar varias formulas que estan en las siguientes celdas ( b2,c2,d2,e2) en la ultima fila con de un google sheets. imaginando que se le va ingresando data a traves de un formulario.(No quiero ocupar arrayformula), espero tu respuesta!
gracias
Hola!
Te entiendo
Seria algo asi
.getRange(b2:e2).copyto(.getRange(b3:e20)
Saludos!
@@JuanSGuzman Entiendo, solo que copyto(.getRange(b3:e20) me limita a que copie solo de b3 a e:20)
Lo que estoy buscando es que, el script encuentre la ultima fila con texto,(pensando que es el ultimo formulario que se respondio), y copie y pegue las formulas de (b2:e2) en su fila correspondiente.
@@cgaconsultores5978 Hola
Entonces en vez de getRange(b3:e20) haces .getRange(hoja.getLastRow()+1,2,1,4)
Un gran saludo!
Juan, buenas tardes. Me genero una duda el pegado especial. Cuando es CopyTo lo comprendo, pero cuando quiero un CopyPasteType.PASTE_DATA_VALIDATION, cuando utilizo set values o realmente quiero hacerlo cuando exporto datos a otra tabla, que estan conectadas por el ID, no se como emplearlo. Esto me pasa cuando algunas columnas son datos para copiar pero otras contienen listas despeglables. Es posible?
Hola!
Esa esta mas dificil te toca copiar las validaciones con getDataValidations() y despues pegarlas de la misma manera que lo haces con los valores
Saludos!
Hola! Antes que nada, gracias por compartir tu conocimiento.
Tengo una duda: ¿existe alguna manera de que lo copiado con código se mantenga en el portapapeles?
Me sucede lo siguiente: intenté hacer una macro en Google Sheet que copiara el valor de una celda específica para poder pegarlo en otros programas (por caso, Word o Bloc de Notas). Pero me pasa que, una vez ejecutada la macro, aquello que su código copió de la celda desaparece del portapapeles.
Hola!
No, no queda en el portapapeles
No se si haya una manera
Saludos!
Juan sabes que al querer sobre escribir datos en una celda, solamente se copia el ultimo dato, no llega a copiarse ningun elemento, solo el ultimo, ni con un sleep, sabes que puede ser?
Hola!
A que te refieres con el último dato
Si no lo has resuelto, detallame un poco más y lo vemos
Saludos!
Hola Juan! Tengo un listado de nombres de hojas que tengo que crear, esas hojas tienen distintos nombres pero un mismo template... como puedo crear un script para que me cree hojas nuevas con el template y con el nombre del listado que le doy?
Hola Flor
Seria algo asi
var libro=SpreadsheetApp.getActiveSpreadsheet()
var hojaTemplate=libro.getSheetByName("template")
hojaTemplate.copyTo(libro).setName(nombre1)
Un gran saludo!
hola una duda si tengo en una hoja 8 tarjetas o etiquetas y quisera 40 necesito copiar esas celdas 5 veces como podria hacerle? para copiar y pegar N veces
Hola!
Habría que ver el código
pero nonrmalmente lo haces con un ciclo for
Saludos!
Hola Juan, muy agradecido con lo que nos enseñas, estuve probando el código y todo bien, pero al momento de copiar formula y convertir a valor en la misma celda Origen-Destino ya no funciona, por alguna extraña razón no permite copiar una celda que tiene formula y pegar como valor en la misma celda.
Hola Luis
Mil gracias por tus palabras!
Revisaste que no tenga alguna validación la celda?
Un gran saludo!
@@JuanSGuzman La celda no tiene ningún formato de validación. Lo que intento hacer es tomar la celda que tiene una formula y convertirla a valor.
Hola muy buenas noches requiero una macro que filtre una tabla de datos de acuerdo a lista desplegable
que los filtre con un filtro de Sheets? que los "filtre" en otra hoja?
Saludos!
HOla Juan, bunas tardes, primero que todo felicitarte y darte gracias por los videos y tu ayuda.
Mi consulta es como copiar las celdas pero solo como valores???
Las copio pero me copía las formulas.....
Gracias..
Hola Jorge!
Gracias por comentar igual!
@@JuanSGuzman gracias a ti, de verdad, he realizado unos trabajos que hoy usa la empresa, por lo que estoy muy agradecido por compartir tus conocimientos.
Nos ha ayudado par ala informacion en la facturacion, cobranzas, checklist, item nogo, , KPI, etc, etc. creo que no te dejare de agradecer nunca, jajja.
Saludos.
@@jorgecanales7039 Excelente!
Esa es la idea! Ser util! Muy feliz que te sirva. Ojalá te asciendan o suban el sueldo! Vamos por eso!
@@JuanSGuzman JAjajajaa, no creo, que suceda, pero hay que tratar...
@@jorgecanales7039 Me cuentas! Yo se que si! Saludos!
Hola, siempre tiene que copiar un rango definido?? estoy intentando copiar un rango variable (es para registrar las ventas que se hagan durante el día. Cada venta o factura tiene un numero diferente de productos). gracias!
Creo que no te entiendo bien
Saludos!
Hola @juanSGuzman, me gustaría copiar las filas de una hoja y pegarlas en otra hoja. En cada fila se registra un producto de una venta. Cada venta puede tener 1 o varios productos. Al pegarlas en otra hoja pretendo generar una base de datos para generar reportes . Gracias!
@@noebautista4754 Me sigue sin quedar tan claro, pero aquí te dejo la segunda parte de este tutorial.
czcams.com/video/GY-MusvzE8M/video.html
Saludos!
Buenas Tardes, te molesto por aca por que no se donde enviarte esta consulta, tengo echo un proyecto pero necesito que lo pueda usar cualquier usuario inclusive los que no tengan cuanta gmail y no me lo permite, solo me lo permite cuando tengo sincronizado el navegar con una cuanta gmail , sabes si tiene alguna solución, desde ya muchas gracias
Hola!
SI lo que quieres es que editen, va a ser dificil, lo mejor sería hacer un webapp o un forms
Saludos!
Hola, Profe tus vídeos me han ayudado mucho en el trabajo, pero tengo una duda, tengo un archivo en una hoja busco el dato de un cliente y en otra quiero actualizar un dato pero no me funciona, podrías ayudarme 😢
De pronto te sirve este video
czcams.com/video/GV-D6iJ-HJw/video.html
Saludos!
En el rango a copiar, podría ser que solo copie la celda activa que este dentro la columna A?? se podría programar algo así?
Creo que no entiendo bien lo que quieres hacer
Saludos!
@@JuanSGuzman A veces solo ya me entiendo disculpa, lo que pretendo lograr es que la macro o scripp solo funcionen con las celdas que están dentro de un rango en especifico, por ejemplo, quiero que funcione dentro del rango A3:B10 para que al momento que quieran copiar la celda C1 no funcione la macro, espero darme a entender!! 😅
@@joselo8577 Para eso usas condicionales
ver colInferior =1
var colSuperior =2
var filaInferior=3
var filaSuperior=10
if(col >=colInferior && col =filaInferior && fila
Otra cosa que note es que en mi editor de comando la sentencia "SpreadsheetApp.CopyPasteType.PASTE_VALUES" no se ilumina de purpura como en tu ejemplo.
Hola Luis
Muy raro
Pero si te funciona?
Un gran saludo!
como se pudiera hacer un copiar y pegar con rangos variables y se podra que el script llame a otra funcion?? saludos
No entendí bien el caso
Saludos!
Si quisiera copiar y pegar datos en una nueva hoja como cambiaria el codigo??
Saludos y Gracias x los videos
Hola Kevin
No se si ya viste la parte 2. Ahi lo vemos
Aquí te la dejo
czcams.com/video/GY-MusvzE8M/video.html
Saludos!
muchas gracias, como haría para copar un rato solo al portapapeles ? ... esto sería para pegar en otro archivo o documento .
Hola Christian
Ya me lo han preguntado y sigo sin saber, jaja
No se si se pueda...sigo investigando
Saludos!
Consulta:
¿Puedo seleccionar cierto rango de celdas, copiarlas y luego hacer un pegado de solo valores en UNA ÚNICA CELDA?
Me puede ayudar con ello. Muy agradecido.
Hola!
Si se puede
Puedes usar el método join
y despues .getValue en la celda deseada
Saludos!
@@JuanSGuzman cual seria el la forma de hacer que mantengan el respectivo salto de línea???
function copi() {
var spreadsheet = SpreadsheetApp.getActive();
var range = spreadsheet.getRange("B8:C10").getValues().join()
spreadsheet.getRange('D1').setValue(range)
};
@@javierfarias2726 Intenta con esto
.join("
")
Saludos!
Hola profe qué tal? Cómo hago sólo para copiar? Pues no necesito el comando de pegar
Hola!
No creo que se pueda
Me imagino que te refieres a poder copiar para pegar en otro lado
Saludos!
Buenas noches Juan , mi bro hay alguna función para borrar datos de tablas?ejemplo tengo una tabla de clientes y juan aparece varias veces en la tabla , yo quiero buscar todos los Juan y borrarlos
Excelente video! Si yo hagolibro con meses del año y quiero que el dato se copie y se pegue en la pestaña (hoja) del mes determinado...como se puede hacer? gracias
Interesanre
Ya me lo han preguntado.
Hay que hacer un par de modificaciones
Tienes una columna donde dices el mes? o solo la fecha
Saludos!
@@JuanSGuzman lo logre solucionar genere una variable mes que trae un valor de una celda que extrae el mes de la fecha y en base a eso elije la pestaña.
@@user-dd4pr2ts1e Excelente!
Alguien me podria auxiliar? grabe un macro para copiar y pegar valores de una hoja a otra, el problema es que se copiaba con la formula; gracias a este tuto ya logre que se copien solo los valores, pero ahora solo puedo ejecutar el macro si estoy en la hoja de destino, alguien sabe que puedo hacer?
Hola!
Exactamente que quieres lograr?
Saludos!
Buenas tardes, esto copyando y adaptando tu codigo para mover unos datos que necesito de una hoja a otra,
function moverCeldas() {
const libro=SpreadsheetApp.getActiveSpreadsheet();
const hojaOrigen=libro.getActiveSheet();
const hojaDestino=libro.getSheetByName("Servicios_Finalizados");
const rangoOrigen=hojaActiva.getRange('A1:F1')
const rangoDestino=hojaDestino.getRange('A1')
rangoOrigen.copyTo(rangoDestino)
}
Estoy posicionado en la hoja que contiene los datos y me da el siguiente error.
ReferenceError: hojaActiva is not defined.
no se porque no me funciona
Hola!
Fijate que estas mezclando hojaActiva con hojaOrigen. Escoge uno de los dos y asegurate que este con el mismo nombre en todos lados
Saludos!
quiero pegar unos datos, si cumple una condición, pegar en x o y hoja de google sheet........favor ayudar, gracias !!
En un archivo personal hago algo parecido
Sería algo así
var libroDestino;
var hojaDestino;
var email;
if (editor == "Angela Fonseca") {
libroDestino = SpreadsheetApp.openById(ID_ARCHIVO_ANGELA)
hojaDestino = libroDestino.getSheetByName(HOJA_ANGELA)
email = EMAIL_ANGELA
} else if (editor == "Daniel Borda") {
libroDestino = SpreadsheetApp.openById(ID_ARCHIVO_DANIEL)
hojaDestino = libroDestino.getSheetByName(HOJA_DANIEL)
email = EMAIL_DANIEL
}
hojaDestino.getRange(filaDestino, columnaDestino).setValue(valorACopiar)
Saludos!
@@JuanSGuzman eres muy bueno con los códigos 🙌🏻 te agradezco mucho 🙏 tendrás algún vídeo o algo parecido donde apliques eso ??
@@bassplayergt7474 yo tenia el mismo error, no miraba los videos y quería copiar y pegar, pero es bueno seguir los pasos.
@@branndonalexisquinterolope998 entiendo.... gracias por la ayuda !! 🙏
@@bassplayergt7474 Lo conseguiste?
Amigo das tutorias privadas??
Hola Tomas
No por el momento. Me encantaría pero no me da el tiempo
Te puedo referir a alguien si quieres
Saludos!
hola buenas tardes. me inscribi a tu pagina pero no encuentro como poder descargar este codigo
Saludos
Hola! Debes ingresar al curso "Videos de CZcams". Creo que ya me escribistte a la página pero si quieres te hago una pequeña guía para que los puedas descargar sin problema
Saludos!
Juan, como estas? Una consulta: hay un modo de diferenciar cuando esta copiando, que si el dato ya esta cargado, lo salte? es decir, que continue con el siguiente campo?
Hola
Aquí te dejo un video donde hago algo similar
czcams.com/video/lwCLQFP7oqw/video.html
czcams.com/video/GV-D6iJ-HJw/video.html
Saludos!
@@JuanSGuzman Muchisimas Gracias!!!
@@JuanSGuzman Juan me sirvio mucho y lo aplique. Ahora tengo una duda existencial: de un domumento1 paso de una hoja a otra tres columnas con una funcion copiar y pegar y luego de esta hoja donde copio y pego, exporto a otro documento esos datos. Esta ultima funcion, impacta en los datos de ida y vuelta como explicas en un video. El tema es, que cuando corre la funcion CyP, del primer documento1 , los datos que exporto con la segunda funcion NO CORREN y no se actualiza. No comprendo por que .. ni siquiera corriendo las funciones desde los menues creados
SI anulo la funcion CyP vuelve a la normalidad la exporacion y el rollback
@@Nadinmonequeta Ya estas en terrenos super avanzados, jaja. Me pierdo. Espero hayas podido solucionar! Saludos!
Hola como estan? Yo necesito copiar un codigo de la descripcion de una publicacion de mercadolibre y pegarlo en una hoja de excel. Se puede automatizar? Porque son 130.000 publicaciones jajaja
jajjajaajajaja disculpa... ya lo vi..
Hola Jorge!
Gracias por comentar igual!
¿Y qué pasa si quiero que me copie según una condición?
¡Resuelto!
Hice una especie de fusión con otro video que encontré por ahí XD para puntualmente "copiar-filtrar"
Excelente!
Felicitaciones!
sabes como copiar una imagen de una celda a otra
COn código?
Es una imagen que insertaste?
No lo se. No estoy seguro si se puede hacer (creo que si pero no se como)
Te lo debo de tarea
Saludos!
Perdon, pero se oye muy feo eso de coger
Jajaja, tantos países hablando español, y tantas diferencias, jaja. Tienes toda la razón. Voy a ponerme la tarea de cambiarlo por "tomar, "utilizar", hay muchas opciones, jaja
Saludos!
Hola cómo estás una pregunta, antes que agradecer tus videos me han ayudado mucho. Quisiera saber si me puedes ayudar tengo este codigo (quisiera saber si es posible antes de que copie y pegue en la otra pestaña no pase con las formulas si no solo los valores):
function eliminaFilas(){
var archivo = SpreadsheetApp.getActive().getSheetByName("Rechazos Injustificados");
var ss = SpreadsheetApp.getActive().getSheetByName("Asignación Pro");
var uf = ss.getLastRow();
var datos = ss.getRange(1,1, uf, 8).getDisplayValues();
for(var i=1;i
Hola!
Lo más fácil es que no uses copyTo ( o lo uses con la opcion PASTE_VALUES(, sino que uses getValues y setValues
Saludos!
@@JuanSGuzman Muchas graciasss
@@hannaamaya3931 Gracias a ti!