Contenido
Indice Dinámico..................................................................................................................................2
Creación Carpetas Dinámico..............................................................................................................3
Conversor Dirección a Coordenadas Georreferenciadas....................................................................4
URL Absoluta de Google Drive a Google Sheets.................................................................................6
Formulario Script en Google Sheet, con búsqueda y modificaciones.................................................8
Indice Dinámico
function indiceDinamico (){
//Configuracion
const nombreInicio="Inicio";
var misHojas=[Link]().getSheets();
var hojaInicio=[Link]().getSheetByName("Inicio");
var i=2;
//Borrar todo el contenido antes de actualizar el indice
[Link](2,1,[Link]()).clearContent();
//Ciclo que recorre todas las pestañas actuales
[Link](function(hoja){
//Condicional para no seleccionar pestaña "Inicio"
if([Link]()!=nombreInicio){
//Agrega formula hipervinculo con el nombre y la Id de cada pestaña
var formula='=HYPERLINK("#gid='+[Link]()+'";"'+[Link]()+'")'
[Link](i,1).setFormula(formula)
//Agrega formula hipervinculo con pestaña Inicio a cada pestaña
[Link](1,1).setFormula('=HYPERLINK("#gid=0";"Ir a Inicio")')
i++;
} //Cierre If Inicio
}) //Cierre Ciclo
}
Creación Carpetas Dinámico
function crearCarpeta(){
var libro=[Link]()
var hoja=[Link]("Config")
var nombreMaestra=[Link]("B2").getValue()
var carpeta=[Link](nombreMaestra)
[Link]("C2").setValue([Link]())
}
function crearCarpetaDentroDeCarpeta(){
var libro=[Link]()
var hoja=[Link]("Config")
var idMaestra=[Link]("C2").getValue()
var carpeta=[Link](idMaestra)
var subCarpetas=[Link](4,2,[Link]()-3).
getValues();
[Link](subCarpetas)
[Link]((fila,indice)=>{
var subcarpeta=[Link](fila[0]);
var idSubcarpeta=[Link]();
[Link](indice+4,3).setValue(idSubcarpeta)
})
}
function OnOpen() {
const menu=[Link]().createMenu("Carpetas");
[Link]("Crear carpeta maestra","crearCarpeta");
[Link]("Crear sistema de carpetas","crearCarpetaDentroDeCarpeta");
[Link]();
}
Conversor Dirección a Coordenadas Georreferenciadas
var ss = [Link]();
var sheet = [Link]();
var dataRangeAll = [Link]();
var ultimaFila = [Link]();
function onOpen() {
var ui = [Link]();
[Link]('Geocodificar')
.addItem('Convertir direcciones en coordenadas', 'geocodificar')
.addToUi();
}
// Geocodificar todas las filas a partir de la 2da
function geocodificar() {
var filaInicial = 2;
var dataRange = [Link](filaInicial, 1,ultimaFila, 5);
var data = [Link]();
// Recorremos todas las filas del rango
for(var i=0; i< [Link]; i++) {
var fila = data[i];
var direccion = fila[0];
// Solamente haremos algo si hay algo en la celda de dirección,
// para no generar errores inesperados
if(direccion != "") {
// Aquí es donde nos conectamos con Google Maps
var geocoder = [Link]().geocode(direccion);
var resultado = [Link][0];
[Link](500);
var latitud = 0;
var longitud = 0;
// Si el geocoder de Google Maps nos devuelve un resultado satisfactorio,
// escribimos la latitud y longitud en las celdas correspondientes al a fila
if(resultado) {
latitud = [Link];
longitud = [Link];
[Link](filaInicial + i, 4).setValue(latitud);
[Link](filaInicial + i, 5).setValue(longitud);
}
}
}
}
URL Absoluta de Google Drive a Google Sheets
function enlace() {
// seleccionar la hoja de cálculo actual
var ss = [Link]();
var sheet = [Link]('Hoja 1');
// obtener la ultima fila y columna
var lastCol = [Link]();
var lastRow = [Link]();
//limpiar contenido
[Link](2, 1, lastRow, lastCol).clearContent();
// identificacion de la carpeta de trabajo
var fldr=[Link]("1HB28oMhn-weBPqlmuQ4g4QaFk5es2NgP");
var files=[Link]();
// crear variable para usar como contador para verificar el número de archivo
var fileCounter = 0;
// cree una matriz vacía para insertar datos de archivo para agregar a la hoja al final
var fileData = [];
// recorrer cada archivo devuelto ***********************
while ([Link]()) {
// obtener el archivo
var file = [Link]();
// obtener el nombre del archivo
var fileName = [Link]();
// quitar extension
var fileSimple= ([Link]("."))[0];
// obtener el ID del archivo
// var fileID = [Link]();
// obtner la url del archivo
var fileUrl = [Link]();
// crear cadena de la url del archivo
// var hyperlink = '=HYPERLINK("' + fileUrl + '","' + fileName + '")';
var hyperlink = fileUrl + fileName;
// obeter el tipo de archivo
var fileType = [Link]();
// recopilar datos de fila y añadirlos a la matriz, para luego agregarlos a la hoja
// var rowData = [fileName, fileID, hyperlink, fileType];
var rowData = [fileSimple, fileName, hyperlink, fileType];
[Link](rowData);
// incrementar el contador de archivos en 1
fileCounter++;
}
// obtener la ultima fila libre + 1 (despues del encabezado)
var lastRow = [Link]() + 1;
// obtener el largo del array
var arrayLength = [Link];
// obtener el ancho de los registros del array (cantidad de columnas)
var arrayWidth = fileData[0].length;
[Link](lastRow, 1, arrayLength, arrayWidth).setValues(fileData);
}
URL: [Link]
Formulario Script en Google Sheet, con búsqueda y modificaciones
//
Limpiar
celdas
function Limpiar() {
var hojaActiva = [Link]();
var formulario = [Link]("Formulario");
var celdasALimpiar = ["B3", "B6", "B8", "B10", "D6", "D8", "D10"]; //
Celdas a limpiar
for (var i=0; i<[Link]; i++){
[Link](celdasALimpiar[i]).clearContent();
}
}
// Guardar celdas
function Guardar(){
var hojaActiva = [Link]();
var formulario = [Link]("Formulario"); // Nombre de
hoja del formulario
var datos = [Link]("Datos"); // Nombre de hoja donde se
almacenan datos
// Celdas de donde se obtendrán los datos a guardar
var valores = [[[Link]("B6").getValue(),
[Link]("B8").getValue(),
[Link]("B10").getValue(),
[Link]("D6").getValue(),
[Link]("D8").getValue(),
[Link]("D10").getValue()]];
// Inyección de datos a hoja donde se almacenan datos
[Link]([Link]()+1,1,1,6).setValues(valores); // El "6"
se cambia por cantidad de datos a almacenar
Limpiar(); // Ejecución de función para limpieza de celdas
}
// Buscar
var NUM_COLUMNA_BUSQUEDA = 0;
function Buscar() {
var hojaActiva = [Link]();
var formulario = [Link]("Formulario"); // Nombre de
hoja del formulario
var valor = [Link]("B3").getValue();
var valores =
[Link]("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i < [Link]; i++) {
var fila = valores[i];
if (fila[NUM_COLUMNA_BUSQUEDA] == valor) {
[Link]("B6").setValue(fila[0]);
[Link]("B8").setValue(fila[1]);
[Link]("B10").setValue(fila[2]);
[Link]("D6").setValue(fila[3]);
[Link]("D8").setValue(fila[4]);
[Link]("D10").setValue(fila[5]);
}
}
}
// Actualizar
function Actualizar(){
var hojaActiva = [Link]();
var formulario = [Link]("Formulario"); // Nombre de
hoja del formulario
var datos = [Link]("Datos"); // Nombre de hoja donde se
almacenan datos
var valor = [Link]("B3").getValue();
var valores =
[Link]("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i < [Link]; i++) {
var fila = valores[i];
if(fila[NUM_COLUMNA_BUSQUEDA] == valor) {
var INT_R = i+1
var valores1 = [[[Link]("B6").getValue(),
[Link]("B8").getValue(),
[Link]("B10").getValue(),
[Link]("D6").getValue(),
[Link]("D8").getValue(),
[Link]("D10").getValue()]];
[Link](INT_R, 1, 1, 6).setValues(valores1);
[Link]().alert('Datos actualizados');
Limpiar(); // Ejecución de función para limpieza de celdas
}
}
}
// Eliminar
function Eliminar() {
var hojaActiva = [Link]();
var formulario = [Link]("Formulario"); // Nombre de
hoja del formulario
var datos = [Link]("Datos"); // Nombre de hoja donde se
almacenan datos
var interface = [Link]();
var respuesta = [Link]('¿Está seguro de
borrar?',[Link].YES_NO);
// Proceso si el usuario responde
if (respuesta == [Link]) {
var valor = [Link]("B3").getValue();
var valores =
[Link]("Datos").getDataRange().getValues(); // Nombre de
hoja donde se almacenan datos
for (var i = 0; i< [Link]; i++) {
var fila = valores[i];
if (fila[NUM_COLUMNA_BUSQUEDA] == valor) {
var INT_R = i+1
[Link](INT_R);
Limpiar(); // Ejecución de función para limpieza de celdas
}
}
}
}
Obtención URL de archivos
function VincularArchivos() {
var sheet = [Link]().getActiveSheet();
var folder = [Link]('COLOCA AQUÍ LA ID DE LA CARPETA');
var files = [Link]();
while ([Link]()) {
var file = [Link]();
var fileName = [Link]();
var fileId = [Link]();
var fileUrl = [Link]();
var fileRow = [Link]('A:A').getValues().flat().indexOf(fileName)+1;
if (fileRow > 0) {
[Link](fileRow, 2).setValue(fileUrl);