Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
CBR для Украины
 
А можно ли в функцию CBR добавить возможность выбора сайта из которого берется значения курса. Аналогично как "Вставка курса валют на заданную дату"?
 
Или сделать аналогичную функцию и назвать её "CBU".
На сайте НБУ есть такие ссылки из API-страницы, вот только как это запилить в функцию не знаю

Курс на текущую дату:
http://bank.gov.ua/NBUStatService/v1/statdirectory/exchange
Курс на дату (вводится в формате YYYYMMDD):
http://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?date=YYYYMMDD
Курс на дату по валюте (код валюти буквенный, регистр значения не имеет):
http://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=EUR&date=YYYYMMDD
Изменено: Стас - 13 Мар 2018 16:40:53
 
Можно немного модифицировать функцию CBR() и получим CBU()  ;)

Если вызывать функцию без параметров - вернет курс доллара на сегодня
Код
'функция запроса к сайту ЦБ Украины для курса заданной валюты на заданную дату
Public Function CBU(Optional InputDate As Date, Optional Money As String = "USD") As Double
    If InputDate = 0 Then InputDate = Date
    d = Format(InputDate, "dd")
    m = Format(InputDate, "mm")
    y = Format(InputDate, "yyyy")
    sURI = "http://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=" & Money & "&date=" & y & m & d

    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err.Number <> 0 Then
        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    End If
    On Error GoTo 0
    If oHttp Is Nothing Then
        Exit Function
    End If
    oHttp.Open "GET", sURI, False
    On Error GoTo 111
    oHttp.Send
    
    CBU = Val(oHttp.responseXML.getElementsByTagName("rate").Item(0).Text)
111:
    Set oHttp = Nothing
End Function
Изменено: serega124 - 10 Авг 2016 13:15:26
 
А есть ли возможность сразу данную функцию зашить в PLEX, чтобы ее по-умолчанию можно было подтянуть в книгу? Извините за глупый вопрос. Тыкните пальцем, если он уже поднимался.
Спасибо.
 
lobaty,Запускаете ексель, жмете левый ALT + F11 и вставляете код функции в модуль UDFs

Возможно, в следующих версиях автор добавит эту функцию в стандартный набор  :)
 
serega124, Спасибо Вам большое! Работает! Давно хотел именно формулу, а не клацанье через кнопку "Курсы Валют", в которую добавили с версии 2.6 НБ Украины.

Цитата
serega124 написал:  lobaty ,Запускаете ексель, жмете левый ALT + F11 и вставляете код функции в модуль UDFs
lobaty, А после того, как добавите в функции "определённые пользователем", можно ещё добавить в библиотеку надстройки PLEX, если есть желание пользоваться формулой из библиотеки. Хотя, запомнить формулу не составляет труда.

Под спойлером изображения, что всё работает  :idea:
Скрытый текст
Изменено: Стас - 10 Авг 2016 15:15:04
 
Супер. Всем спасибо.
 
Супер, все работает! Назвал правда её NBU, но то такое :)
Спасибо за формулу.
 
Извиняюсь. Можно спросить на похожую тему?Допустим надо не с банка Украины данные брать, а с другого источника. Возможно ли прописать код, который будет разбирать код хтмл и искать в нем курсы валют? Или надо для каждого конкретного источника прописывать свой код?
 
AgPilot, каким боком Ваш вопрос относится к надстройке?
 
Опять же можно было бы включить в плекс. Чтобы не выбирать из узкого списка, а иметь возможность загружать курсы с любых источников, будь то Центробанк Украины или курсы валют с сайта forbes. Я просто спрашиваю возможно ли вообще технически сделать это или нет.
Изменено: AgPilot - 9 Авг 2017 11:07:43
 
AgPilot, Plex, не моя компетенция, но ответ именно на Ваш вопрос: у каждого сайта СВОЯ организация данных (структура), поэтому универсальности (один-ко-всем) не получится.
 
Коллеги, ссылка:
Цитата
Стас написал:
Курс на дату по валюте (код валюти буквенный, регистр значения не имеет): http://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=EUR&date=YYYYMMDD
перестала работать в формуле. Танцы с бубном показали, что НБУ перешл на https://
Исправление в формуле:
Цитата
serega124 написал:
sURI = " https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode= " & Money & "&date=" & y & m & d
все решает.
 
Цитата
BDM написал:
Исправление в формуле:
подскажите пожалуйста как зайти в эту надстройку, чтобы добавить букву "s"?
 
Alt+F11
 
спс, это понятно, я уже разобрался, просто не мог найти саму строку ))))
Изменено: Savit - 10 Апр 2018 15:15:34
 
Цитата
serega124 написал: Можно немного модифицировать функцию CBR() и получим CBU()
у меня не работает не могу понять в чем причина
 
Цитата
Мазгаским написал:
у меня не работает не могу понять в чем причина
в последнем PLEXe функция уже включена. Только идет как NBU
Страницы: 1
Читают тему (гостей: 2)
Наверх