TOP

Import of exchange rates from the NBU website to LibreOffice Calc

NBU_RATE() Description

A ready-made function for those who often have to use NBU exchange rates in LibreOffice Calc.

Helps to automatically obtain the value of the exchange rate from NBU website by its code and date.


BASIC code for function NBU_RATE

To add the function of importing NBU exchange rates, open the menu Tools - Macros - Edit Macros..., select Module1 and copy the following text into this module:

Function NBU_RATE(ByVal pCurrency, ByVal pDate)
  'moonexcel.com.ua 
  Dim FCalc As Object
  
  If Len(pCurrency) = 0 Or Len(pDate) = 0 Then Exit Function             
      
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
  
  tDate = FCalc.callFunction("TEXT", Array(pDate,"YYYYMMDD"))
                                                    
  RequestString = "https://bank.gov.ua/NBU_Exchange/exchange_site?start=" & tDate & "&end=" & tDate & "&valcode=" & pCurrency
            
  WebServiceResponse = FCalc.callFunction("WEBSERVICE", Array(RequestString))  
  
  NBU_RATE = FCalc.callFunction("FILTERXML", Array(WebServiceResponse,"//rate_per_unit"))    
End Function

Close Macro Editor and return to LibreOffice Calc.

Now you can manually enter our NBU_RATE() function. The syntax of this function is as follows:

=NBU_RATE ( currency code ; date )

We will have the following result:

Using the YouLibreCalc extension

You can also use the NBURATE() function by setting the extension " YouLibreCalc.oxt ". After that, this function will be available in all files that will be opened in LibreOffice Calc.