En este tema abordaremos algunas formas fáciles para crear una copia de tu formulario de Google con el fin de que puedas facilitar esta copia a las personas de tu interés para que estas la administren.
Parece ser que a veces es necesario que una persona crea un formulario y luego lo quiera enviar a otras para que lo gestionen, puede simplemente ocurrir que la persona encargada de gestionar los formularios haya decidido dejar el negocio o empresa y que sea necesario que otra se haga cargo, en otras ocasiones simplemente un profesor quiere compartir sus herramientas de trabajo con otros profesores, cualquiera que sea el motivo, esta duda parece ser una pregunta a responder.😎
Así que me daré a la tarea de sugerir algunas formas relativamente fáciles para crear esa copia de un formulario de Google.
Creando una copia desde el formulario en modo "edición" y cediendo la propiedad del formulario de Google a otra persona
Creando una copia desde tu Drive y cediendo la propiedad del formulario a otra persona
mediante una url de copiado
desde un botón en modo edición del formulario , para crear la copia con un script.
ve a la opción de los 3 puntos verticales
da clic en la opción crear una copia
en la copia del formulario ve a los 3 puntos verticales y después a agregar colaborador, una vez agregado
elijes la opción de convertir en propietario
realizas un filtrado por tipo "formularios" ,o escribir directo type:form ó escribir owner:me type:form
seleccionas el formulario a copiar dando clic sobre él.
clic con el botón derecho del ratón/mouse , para ver el menú contextual
cilc en crear copia...(mira la imagen.)
Estando en modo edición del formulario, copias la url del mismo
la pegas y sustituyes su terminación edit por copy, por ejemplo: https://docs.google.com/forms/d/1234567890abcdefghijklmnopqrstuwxyz/copy
y luego enmascarar la url con un acortador, como se muestra en la imagen, para más detalles ver el vídeo
crear una función onOpen para crear un menú personalizado desde el cual ejecutar el script de copiado del formulario
ejecutar el script para generar la copia, esto crea la copia en el Drive del usuario que la ejecuta, pero asigna mediante código un nuevo colaborador-editor y luego lo convierte en propietario de la copia creada,de manera que al hacer esto , el formulario aparecerá en el Drive de la persona a la que se convirtió en editor primeramente y de inmediato en propietario, esta seria la gran ventaja de este método
si tienes alguna consulta, por favor realizara en mi canal de YouTube en el vídeo respectivo, puedes acceder a él ,dando clic en el icono correspondiente al final de este tema.
existe otra forma para crear una copia de todo el formulario incluyendo su Google Sheets asociada y esto es creando el enlace de descarga con el método 3 descrito aquí , pero con la particularidad de que debes configurarlo en las opciones para compartir con cualquier usuario que tenga acceso
puedes descargar en PDF todo el procedimiento desde este enlace o hacer tu copia
👉 instrucciones para crear una copia completa del formulario y su Google Sheets asociada 👈
🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺
Suscríbete y Síguenos en:
function onOpen(e) {
// Add a custom menu to the spreadsheet.
FormApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
.createMenu('🚀 Copia de Form')
.addItem('📌 Crear', 'CopiandoForm')
.addToUi();
}
function CopiandoForm(){
var form = FormApp.getActiveForm();
var id = form.getId();
var nombre = form.getTitle();
var f = new Date();
var fechaHora = f.getDate() + "/" + (f.getMonth() +1) + "/" + f.getFullYear() + " - " + f.getHours() + ":" + f.getMinutes() + ":" + f.getSeconds();
//var fechaHora = fechaFormateda(); // para simplificar fechaHora .- puede cambiarse por esta funcion
var NvoNombre = "Prueba de " + nombre + "-" + fechaHora
var folder = DriveApp.getFolderById("aquí el ID de tu folder");
var formBase = DriveApp.getFileById(id).makeCopy(NvoNombre, folder);
formBase.addEditor("eleditor@gmail.com").setOwner("propietario@gmail.com");
//formBase.removeEditor(emailAddress);
FormApp.getUi().alert('Form copiado exitosamente!!')
}
//==================== OPCION #2 ======================================================
function crearCopiaForm() {
var form = FormApp.getActiveForm();
var id = form.getId();
var nombre = form.getTitle();
var f = new Date();
var fecha = f.getDate() + "/" + (f.getMonth() +1) + "/" + f.getFullYear() + " - " + f.getHours() + ":" + f.getMinutes() + ":" + f.getSeconds();
//Logger.log(fecha);
var folder = DriveApp.getFolderById("aquí el ID de tu folder");
var formBase = DriveApp.getFileById(id);
// crea un nuevo form en el folder
var Nvoform = folder.createFile(formBase.getBlob()).setName("Copia de " + nombre + "-" + fecha) //.addEditor(emailAddress) //.setOwner(emailAddress);
//Nvoform.setSharing(FormApp.Access.ANYONE_WITH_LINK, FormApp.Permission.EDIT);
//Nvoform.addEditor(emailAddress).setOwner(emailAddress).setSharing(accessType, permissionType).get
Nvoform.addEditor("ahcastillo48@gmail.com").setOwner("ahcastillo48@gmail.com");
Logger.log(Nvoform.getUrl());
//DriveApp.removeFile(ssFile);// delete the file from the root folder.
}
//============= función auxiliar =====================================
function fechaFormateda(){
//https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date,String,String)
var formattedDate = Utilities.formatDate(new Date(), "GMT-5", "dd/MM/yyyy' 'HH:mm:ss");//GTM-5 .-horario de verano para México
Logger.log(formattedDate);
return formattedDate;
}