Cómo conectar la API de Banxico con Google Sheets usando Apps Script

Imagen
Cómo conectar la API de Banxico con Google Sheets usando Apps Script Hace unos días quería automatizar consultas financieras directamente desde Google Sheets utilizando la API de Banco de México (Banxico). La idea era evitar actualizar manualmente: Tipo de cambio USD UDIS CETES TIIE Otros indicadores financieros Después de algunas pruebas terminé creando una integración utilizando Apps Script y la API REST de Banxico. En este artículo quiero mostrar cómo funciona la lógica principal del proyecto y cómo se puede conectar Google Sheets con APIs externas. 🎥 Video demostración 📌 ¿Qué es Apps Script? Apps Script es la plataforma de automatización de Google que permite extender funcionalidades en: Google Sheets Google Docs Google Forms Google Drive Google Workspace Básicamente permite utilizar JavaScript para automatizar procesos dentro de Google. 🔑 Obtener token API Banxico Para consumir la API de Banxico primero es necesario g...

Macro leer datos Base Datos

Código de macro completo para leer datos de QAD 


Private Sub CommandButton1_Click()
Dim cn400 As ADODB.Connection
Dim rg400 As ADODB.Recordset
Dim cmdString As ADODB.Command
Dim strcon As String
Dim parte As String
Dim Row As Integer
Dim exrate As Double
Dim abc_type As String
Dim vc_oid_pt_mstr As Double
ActiveSheet.Unprotect Password:="testpass"

If Range("B4") = "" Then
MsgBox "No Item found in Cell B4."
Exit Sub
End If

strcon = "Provider=SQLOLEDB; Data Source = base_datos; User id=base_datos_user; Password=pass_word"

    Set cn400 = New ADODB.Connection
    Set rg400 = New ADODB.Recordset
    Set cmdString = New ADODB.Command
Sheet5.Range("A8:C22") = ""
Call cn400.Open(strcon)
parte = Sheet5.Range("B4")
cmdString.CommandType = adCmdText
Set cmdString.ActiveConnection = cn400
'PT description
cmdString.CommandText = "Select pt_desc1, pt_desc2, pt_abc, oid_pt_mstr from pt_mstr where (pt_domain = 'domain' AND pt_part ='" + parte + "')"
 Set rg400 = cmdString.Execute(RecordsAffected, ExecuteOptionEnum.adAsyncFetch)
Row = 4
    Do While Not rg400.EOF
        Cells(Row, 4).Value = rg400.Fields(0).Value + rg400.Fields(1).Value
        abc_type = rg400.Fields(2).Value
        vc_oid_pt_mstr = rg400.Fields(3).Value
        Row = Row + 1
        rg400.MoveNext
    Loop
rg400.Close

'abc type
cmdString.CommandText = "Select pti_abc from pti_det where (pti_det.oid_pt_mstr = " + Str(vc_oid_pt_mstr) + ")"
Set rg400 = cmdString.Execute(RecordsAffected, ExecuteOptionEnum.adAsyncFetch)
Do While Not rg400.EOF
        abc_type = rg400.Fields(0).Value
        Row = Row + 1
        rg400.MoveNext
    Loop
rg400.Close

Cells(3, 4).Value = abc_type

'exchange rate
cmdString.CommandText = "Select code_cmmt from code_mstr where (code_domain  = 'domain' AND code_fldname = 'xxprocess-general' AND code_value   = 'exchange-rate-usd')"
 Set rg400 = cmdString.Execute(RecordsAffected, ExecuteOptionEnum.adAsyncFetch)
 exrate = rg400.Fields(0).Value
'costo
cmdString.CommandText = "Select sct_cst_tot from sct_det where (sct_domain = 'domain' AND sct_sim = 'STANDARD' AND sct_site = 'site'AND sct_part ='" + parte + "')"
 Set rg400 = cmdString.Execute(RecordsAffected, ExecuteOptionEnum.adAsyncFetch)
Row = 3
    Do While Not rg400.EOF
        Cells(Row, 6).Value = rg400.Fields(0).Value / exrate
        Row = Row + 1
        rg400.MoveNext
    Loop
rg400.Close

'inventario in locations
cmdString.CommandText = "Select ld_loc, ld_qty_oh from ld_det where (ld_domain = 'domain' AND ld_site = 'site' AND ld_part ='" + parte + "')"
 Set rg400 = cmdString.Execute(RecordsAffected, ExecuteOptionEnum.adAsyncFetch)
Row = 8
    Do While Not rg400.EOF
        Cells(Row, 1).Value = rg400.Fields(0).Value
        Cells(Row, 2).Value = rg400.Fields(1).Value
        Row = Row + 1
        rg400.MoveNext
    Loop
rg400.Close
' ActiveSheet.Protect Password:="testpass", DrawingObjects:=True, Contents:=True, Scenarios:=True
 ActiveWorkbook.Save

End Sub

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

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)