Страницы: 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.03.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.08.2016 13:15:26
 
А есть ли возможность сразу данную функцию зашить в PLEX, чтобы ее по-умолчанию можно было подтянуть в книгу? Извините за глупый вопрос. Тыкните пальцем, если он уже поднимался.
Спасибо.
 
lobaty,Запускаете ексель, жмете левый ALT + F11 и вставляете код функции в модуль UDFs

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

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

Под спойлером изображения, что всё работает  :idea:
Скрытый текст
Изменено: Стас - 10.08.2016 15:15:04
 
Супер. Всем спасибо.
 
Супер, все работает! Назвал правда её NBU, но то такое :)
Спасибо за формулу.
 
Извиняюсь. Можно спросить на похожую тему?Допустим надо не с банка Украины данные брать, а с другого источника. Возможно ли прописать код, который будет разбирать код хтмл и искать в нем курсы валют? Или надо для каждого конкретного источника прописывать свой код?
 
AgPilot, каким боком Ваш вопрос относится к надстройке?
 
Опять же можно было бы включить в плекс. Чтобы не выбирать из узкого списка, а иметь возможность загружать курсы с любых источников, будь то Центробанк Украины или курсы валют с сайта forbes. Я просто спрашиваю возможно ли вообще технически сделать это или нет.
Изменено: AgPilot - 09.08.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.04.2018 15:15:34
 
Цитата
serega124 написал: Можно немного модифицировать функцию CBR() и получим CBU()
у меня не работает не могу понять в чем причина
 
Цитата
Мазгаским написал:
у меня не работает не могу понять в чем причина
в последнем PLEXe функция уже включена. Только идет как NBU
 
    Уже три дня ламаю голову по  поводу как вставить формулой курс НБУ в эксель, да так чтоб показывать курс на заданную дату. PLEX  отлично вствляет курс нажимая иконку (https://www.planetaexcel.ru/plex/features/16/255/)  а вот вставить формулой курс НБУ из библиотеки не хочет. Ну как не хочет, если по умолчанию оставить доллар то курс виден, но если вставить код валюты то результат равен нулю, причем код доллара 840 вставляешь и тоже результат равен нулю. Тобишь работает только с долларом по умочанию, когда поле валюты не заполнять.  Вот это не работает =NBU(A1;840), а так работает =NBU(A1;). Почему -не пойму...
   Через Файл веб-запроса для Microsoft Excel (.iqy) тоже не могу, как на видео - https://www.youtube.com/watch?v=8KQchkmFGsI
Все дело в том, что нет нигде как  в экселе 2019 года сохранять файл в формате .iqy, ну да ладно, сохранил через версию 2016 года. Но когда открыл в блокноте, там и близко нет того как рассказывают в видеоуроке. Есть вот такой текст, где датами и не пахнет...

WEB
1
https://finance.i.ua/nbu/

Код
Selection=1
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False

Может кто посоветует чего?
Изменено: 2431483 - 20.03.2020 18:05:54
 
Попробуйте использовать буквенный код валюты, а не цифровой. И про кавычки не забудьте ;)

Например,  
Код
=NBU(A1;"EUR")
=NBU(A1;"USD")

Перечень кодов есть на сайте НБУ.
Должно работать.
Изменено: Стас - 20.03.2020 20:34:05 (перенёс строки в коде формул, для удобства чтения)
 
Цитата
Стас написал:
Должно работать.
Работает. Правда напрямую с из библиотеки не хочет, приходится прописать доллар по умолчанию, а потом исправить на нужную валюту.
Спасибо, действительно - когда знаешь все просто))))
 
Для полноты расскрытого вопроса прошу подсказать как  в экселе 2019 года сохранять файл веб-запроса для Microsoft Excel (.iqy) в формате .iqy
Об этом есть  видео  - https://www.youtube.com/watch?v=8KQchkmFGsI   но там видимо эксель 16 года, и там внутренний браузер работает по другому
Страницы: 1
Наверх