📈 Microsoft Excel

Tasa BCV en Excel

Conecta Excel a Cotizave con Power Query. Se actualiza sola, sin VBA.

Método Power Query (recomendado)

1

Abre el editor de Power Query

En Excel, navega a Data → Get Data → From Other Sources → From Web. En el cuadro de diálogo que aparece, selecciona Advanced (en lugar de Basic) para poder agregar encabezados HTTP personalizados.

2

Configura la URL y el header de autenticación

En el campo de URL pega https://api.cotizave.com/v1/fx/rates/reference. Luego, en la sección HTTP request header parameters, añade una fila con:

Nombre del header : X-API-Key
Valor             : TU_API_KEY
3

Pega el código M en el editor avanzado

Una vez en Power Query, abre Home → Advanced Editor y reemplaza todo el contenido con el siguiente código M. Cambia TU_API_KEY por tu clave real:

// Power Query — Advanced Editor
let
    Source = Json.Document(
        Web.Contents(
            "https://api.cotizave.com/v1/fx/rates/reference",
            [Headers = [#"X-API-Key" = "TU_API_KEY"]]
        )
    ),
    Rate = Source[rate]
in
    Rate

Haz clic en Done y luego en Close & Load. La tasa aparecerá en la celda de destino.

4

Configura el refresh automático

Ve a Data → Queries & Connections. En el panel lateral, haz clic derecho en tu consulta y selecciona Properties. Activa la opción Refresh every X minutes y pon el intervalo que necesites. Al abrir el archivo también puedes marcar Refresh data when opening the file para tener siempre el valor del día.

Método alternativo: macro VBA

Si prefieres VBA o necesitas disparar la actualización desde otra macro, abre el editor de Visual Basic con Alt+F11, inserta un módulo nuevo e ingresa este código:

' VBA — insertar en un módulo (Alt+F11)
Const COTIZAVE_API_KEY As String = "TU_API_KEY"

Sub ActualizarTasaBCV()
    Dim http As Object
    Dim json As Object
    Dim url As String
    Dim responseText As String
    Dim rate As Double

    url = "https://api.cotizave.com/v1/fx/rates/reference"

    Set http = CreateObject("MSXML2.XMLHTTP.6.0")
    http.Open "GET", url, False
    http.setRequestHeader "X-API-Key", COTIZAVE_API_KEY
    http.Send

    If http.Status = 200 Then
        responseText = http.responseText
        ' Extraer el valor del campo "rate" del JSON
        Dim rateStart As Long
        rateStart = InStr(responseText, """rate"":") + 7
        Dim rateEnd As Long
        rateEnd = InStr(rateStart, responseText, ",")
        If rateEnd = 0 Then rateEnd = InStr(rateStart, responseText, "}")
        rate = CDbl(Mid(responseText, rateStart, rateEnd - rateStart))
        ' Escribir en la celda B2 (ajusta según tu hoja)
        ThisWorkbook.Sheets(1).Range("B2").Value = rate
        MsgBox "Tasa BCV actualizada: " & rate
    Else
        MsgBox "Error al consultar la API: " & http.Status
    End If

    Set http = Nothing
End Sub

Ejecuta la macro con F5 o asígnala a un botón. Ajusta Sheets(1).Range("B2") a la celda donde quieres que aparezca la tasa.

Preguntas frecuentes

¿Funciona en Excel Online (Microsoft 365 web)?

Power Query con autenticación por header HTTP funciona en Excel de escritorio (Windows y Mac). En Excel Online la funcionalidad de Power Query está limitada y puede no soportar encabezados personalizados. Para Excel Online, la alternativa más sencilla es la macro VBA o consumir la API desde Power Automate.

¿Puedo traer varias tasas de golpe (BCV, paralelo, P2P)?

Sí. Crea una consulta de Power Query separada para cada mercado cambiando el segmento de la URL (reference, parallel, binance, etc.). También puedes expandir el código M para hacer varias llamadas y combinar los resultados en una tabla.

¿La guía aplica para Excel en Mac?

Sí, Power Query está disponible en Excel para Mac (versión 16.x en adelante). La navegación de menús es casi idéntica: Data → Get Data → From Web. La macro VBA también funciona en Mac con la misma sintaxis.