Enlace al artículo original: http://www.edgartec....ria-de-dolares/
Desde hace tiempo he comenzado a utilizar Google SpreadSheet como mi programa de hoja de cálculo preferido pues resulta muy cómodo tener mis documentos siempre disponibles sin importar dónde me encuentre. Lo único que echaba de menos eran las macros en Microsoft Office, así que me puse a investigar y encontré con que Google ha puesto a nuestra disposición un lenguaje de programación de macros usando el lenguaje Javascript.
Las prestaciones de este lenguaje para crear macros en nuestras hojas de cálculo de google es realmente muy amplia pues permite hacer muchas cosas y es por ello que para muestra decidí crear una macro para registrar los históricos de la paridad Peso Dólar. Pero antes, si deseas saber más sobre esto te recomiendo leer la guía de inicio rápido que nos proporciona google:Quickstart: Macros, Menus, and Custom Functions.
Creando la macro.
Para tener acceso a la información del tipo de cambio al día del Dólar respecto al Peso Mexicano usaremos el sitio: Tipo de Cambio del Dólar y Divisas – Banamex.com que mantiene un registro día a día de la paridad de cambio. Luego, que hemos establecido la fuente de consulta crearemos una nueva hoja de cálculo a la que llamaremos “Macro Dólares” .
Una vez que hemos creado nuestro documento cambiaremos el nombre de la Hoja1 a Histórico y crearemos una segunda hoja con el nombre Temporal. Luego seleccionaremos el menú Herramientas/Editor de secuencia de comandos
Ahora nos aparecerá un mensaje solicitando decidamos qué tipo de proyecto deseamos crear. Seleccionaremos “Proyecto en blanco”
Al realizar esta selección se creará un nuevo proyecto al que llamaremos MacroDolares. El único código que nos aparecerá en pantalla es:
function myFunction() { }
Como el objetivo es mantener un histórico diario de los tipos de cambio lo que haremos será consultar la página de banamex y con la función ImportHtml extraer los datos en temporal para luego tomar el tipo de cambio al día y agregarlo en la primera fila de la hoja Histórico. Para ello usaremos el siguiente código:
function DameFecha() {var currentdate = new Date();var datetime = currentdate.getDate() + "/"+ (currentdate.getMonth()+1) + "/"+ currentdate.getFullYear();return datetime;}function AgregaTipoCambio() {var Historico = SpreadsheetApp.getActive().getSheetByName('Historico') ;var Temporal = SpreadsheetApp.getActive().getSheetByName('Temporal') ;Temporal.getRange(1, 1).clear();Temporal.getRange(1, 1).setFormulaR1C1('=IMPORTHTML("http://portal.baname...ales/es/resumen";"table";1)');Historico.insertRows(2, 1);Historico.getRange(2, 1).setValue(Temporal.getRange(3, 4).getValue());Historico.getRange(2, 2).setValue(DameFecha());}Lo que este código hará es obtener los datos del tipo de cambio y luego copiará el tipo de cambio del día y lo agrega al inicio de la hoja de cálculo creando un histórico de cambios. Para probarlo guardaremos los cambios y seleccionaremos en el depurador la función AgregaTipoCambio y la ejecutaremos.
La primera vez que lo ejecutemos aparecerá la siguiente ventana solicitando permisos. Así que habrá que autorizarla.
Al ejecutarlo podremos ver los siguientes cambios en nuestra hoja de cálculo de google:
Por último, para garantizar que cada día se ejecutará la consulta habrá que usar un activador para que se ejecute todos los días a las 8 de la mañana.
Y con esto tenemos una macro con la que podemos automatizar la consulta de tipo de cambio. El uso de macros es una gran característica de las hojas de cálculo en google.