La guía completa de automatización con macros en Office (Excel, Word, APIs y más)
Bienvenid@ a Programación para Todos, un espacio personal donde documento aprendizajes técnicos, ideas y procesos de programación que he querido probar y entender por cuenta propia. Los casos y ejemplos que comparto no tienen referencia a mi trabajo, sino que son ejercicios, pruebas y escenarios recreados a partir de inquietudes técnicas personales. Este blog funciona como un compendio personal de conocimiento: código, ideas y reflexiones que decido compartir.
Google tiene una versión gratuita para Hojas de cálculo mejor conocidas por el software más utilizado del mundo Excel de Microsoft, en días anteriores tenía que crear una plantilla en Google Sheets pero tenía que hacer lo mismo que hacía mi plantilla en Excel, solo que mi plantilla tiene macros y de ahí el tema de hoy: explicarles como es que pueden incorporar macros en Google Sheets.
El resultado final es
/** @OnlyCurrentDoc */
function Calcular_consolidado_periodo() {
var vcperiodo = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plantilla").getRange("M2").getValue();
SpreadsheetApp.getUi().alert(vcperiodo);
var vifilain = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getLastRow() ;
var vifila = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getLastRow() ;
var indcat = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Categorias").getLastRow() ;
var vctotal = 0;
var vifila2 = 3;
var indicecat = 1;
var categoria = "";
vifila = vifila + 1;
do{
categoria = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Categorias").getRange(indicecat, 1).getValue()
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getRange(vifila, 2).setValue(categoria);
indicecat = indicecat + 1;
vifila = vifila + 1;
}while(indicecat < indcat);
vifila = vifilain;
vifila = vifila + 1;
do {
vifila2 = 3
vctotal = 0
do{
if (SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plantilla").getRange(vifila2, 5).getValue() == vcperiodo &&
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plantilla").getRange(vifila2, 2).getValue() ==
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getRange(vifila, 2).getValue())
{
var valor = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plantilla").getRange(vifila2, 4).getValue();
vctotal = vctotal + valor;
}
vifila2 = vifila2 + 1
}while (SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Plantilla").getRange(vifila2, 5).getValue() != "");
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getRange(vifila, 1).setValue(vcperiodo);
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getRange(vifila, 3).setValue(vctotal);
vifila = vifila + 1 ;
} while (SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Resumen").getRange(vifila, 2).getValue() != "" );
};
El tema me parece muy interesante, porque también como veíamos en otro post previo TypeScript el nuevo lenguaje utilizado para programar macros online Typescript el sustituto de VB también esta basado en Javascript, cada vez veo más aplicaciones a este lenguaje.
Espero esta pagina les sea de utilidad, nos sigan, nos compartan en este blog o en la página de Facebook https://www.facebook.com/Programacionparatodosmsg/
Comentarios
Publicar un comentario
Dejanos tus dudas y comentarios