馃搳 Macros en Google Sheets: Automatizaci贸n y Ejemplos Pr谩cticos
- Obtener v铆nculo
- X
- Correo electr贸nico
- Otras apps
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.
- Primer paso entender la l贸gica de mi programa, cuales eran los pasos en visual basic.
- Pens茅 que lo mas f谩cil era hacer una traducci贸n del c贸digo de mi macro al c贸digo de Google Sheet, as铆 que abr铆 mi macro de Excel y comenc茅 buscar como se llamaban las instrucciones y buscar en Google la instrucci贸n de equivalencia.
- Comenzar a probar cada l铆nea que agregaba, para ver que hicieran la funcionalidad que yo quer铆a.
- Mejorar la macro de Visual Basic.
El resultado final es
El c贸digo que utilice
/** @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 c贸digo de la Macro en Excel vs Google Sheets
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/
- Obtener v铆nculo
- X
- Correo electr贸nico
- Otras apps
Comentarios
Publicar un comentario
Dejanos tus dudas y comentarios