Macro en Word para leer recibos de n贸mina CFDI y extraer el ISR retenido autom谩ticamente

Imagen
Macro en Word para leer recibos de n贸mina CFDI y extraer datos clave Si trabajas en contabilidad, seguramente has recibido archivos XML de recibos de n贸mina para revisi贸n o conciliaci贸n. Esta macro te permite leer m煤ltiples archivos CFDI versi贸n 4.0 directamente desde Word, y extraer autom谩ticamente los siguientes datos: RFC del Emisor RFC del Receptor Total del comprobante UUID ISR Retenido (extra铆do del nodo de deducciones de n贸mina) Esto es especialmente 煤til para quienes deben validar cantidades retenidas de ISR en recibos de n贸mina digitales y quieren presentar su declaraci贸n anual o para contadores. La macro coloca toda la informaci贸n organizada en una tabla dentro del documento Word, lista para copiar o validar. ¿C贸mo funciona? Al ejecutar la macro: Seleccionas uno o varios archivos XML desde tu computadora Word los analiza uno por uno Se genera autom谩ticamente una tabla con los datos clave ¿Qui茅n puede usar esta macro? Est谩 pensada para c...

馃搳 Macros en Google Sheets: Automatizaci贸n y Ejemplos Pr谩cticos

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.

Ejemplo de macro en Google Sheets para automatizar tareas en hojas de c谩lculo.


  1. Primer paso entender la l贸gica de mi programa, cuales eran los pasos en visual basic.
  2. 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.
  3. Comenzar a probar cada l铆nea que agregaba, para ver que hicieran la funcionalidad que yo quer铆a.
  4. Mejorar la macro de Visual Basic.

El resultado final es 


Como nota adicional si quieres grabar sus v铆deos como el que muestre, solo tienen que utilizar Power Point
https://support.microsoft.com/es-es/office/recortar-un-v%C3%ADdeo-1fc386f2-8404-43e8-9dbd-fee3a11a1d8f#:~:text=Para%20guardar%20una%20copia%20independiente,un%20nivel%20de%20compresi%C3%B3n%20adecuado.

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

Ejemplo de macro en Google Sheets para automatizar tareas en hojas de c谩lculo.

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

馃殌 Mantener este blog funcionando requiere tiempo y caf茅. ¡Puedes contribuir con uno aqu铆!

Entradas m谩s populares de este blog

Gu铆a Pr谩ctica: Ejemplo Completo de ASPX para Desarrolladores Web

馃搳 Automatiza tu trabajo: Convierte tablas de Word a Excel con una macro

Macro de Excel para abrir archivo csv