Курс доллара в эксель из интернета

Курс доллара в эксель из интернета

Импорт курса валют из интернета

​Смотрите также​Для получения курса евро,​ oHttp = Nothing​ с вопросом о​Самые популярные в России​ которой стоит курс)​или​. В появившемся окне​ (последовательность действий одинакова​

Способ 1. Простой веб-запрос для текущего курса валют

​E5​​ архив курса нужной​​в Excel 2007-2010.​для подстановки в​ мыши -​ ​ значениями курса на​ единое целое и​​ помечены — нажмите​В старых версиях Excel​​ иены, фунта и​ ​ ‘заменяем точку на​​ дате inpdate =​​ курсы — это​​ , я каждый​

​Обновить данные​Импорт данных​​ для всех версий,​​- ячейка, где​ валюты на листе:​ В открывшемся окне​ запрос:​Открыть с помощью -​

​ заданном интервале дат.​ получает собственное имя​ кнопку​ подобная задача требовала​ других валют необходимо​ запятую и выводим​ CDate(InputBox("Введите дату в​

​ курсы валют.​ раз прописывала это​вручную.​​Вы можете выбрать​ ​ отличается только первый​​ лежит заданная дата​Как и в первом​ выбора источника данных​=ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГГГ")​ Блокнот​ Прокручиваем полученную таблицу​

​ (в нашем примере​Импорт​ неслабых ухищрений и​ сделать следующее:​ в активную ячейку​ формате ДД.ММ.ГГГГ", _​​Правда, на них​ ​ вручную.. потому что​​Данная возможность есть​​ место размещения данных​ шаг):​cbr​ способе, щелкнув правой​ находим и открываем​

​или в английской версии​(или выбрать его​ вниз до упора​ это будет​​(Import)​​ для многих сайтов​Открываете страницу сайта ЦБ​ outstr = Replace(outstr,​ "Курс доллара", Date))​ мало учат, зато​​ при копировании с​​ в Excel начиная​

​ и настроить свойства​Шаг 1​- имя диапазона​ кнопкой мыши по​ файл​=TEXT(TODAY(),"dd.mm.yyyy")​ из списка -​​ и помечаем ее​​www.cbr.ru​

Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат

​внизу окна. Спустя​ была вообще нереализуема.​ со списком валют,​ ",", ".") ActiveCell.Value​ ‘разбираем дату на​ много наказывают.​ помощью ctrl ячейка​ с версии 2003.​ диапазона (это можно​. Для​ данных (автоматически создается​ импортированным данными и​cbr.iqy​Куда-нибудь рядом вводим код​ обычно это файл​ для импорта, щелкнув​)​ некоторое время, нужное​ Начиная с версии​

​ обновляемых ежедневно за​ = outstr End​ составляющие d =​Если Вам часто приходится​ с курсом тоже​

​Соответсвенно когда курс меняется,​ сделать и позже,​Excel 2003​ при импорте и​

​ выбрав команду​​. Перед импортом Excel​​ нужной нам валюты​Notepad.exe​ по черно-желтой стрелке​Этот способ представляет собой​ для загрузки данных,​ Excel 2003 все​ любую дату, например​ Sub​ Format(inpdate, "dd") m​ узнавать курс доллара​ сдвигается​ чтобы нужно было​ уже после того​:​ обычно совпадает с​Свойства диапазона (Data range​ уточнит у нас​ из таблицы:​

​из папки​ в левом нижнем​ слегка модернизированный первый​​ содержимое импортируемых таблиц​ ​ сводится к нескольким​​ http://cbr.ru/currency_base/daily.aspx?C_month=10&C_year=2012&date_req=01.10.2012. ​Теперь, если закрыть редактор​ = Format(inpdate, "mm")​ для определенной заданной​Павлухин андрей​ его просто изменить,​​ как веб-запрос будет​​Данные — Импорт внешних​​ именем файла запроса)​​ properties)​ три момента.​Валюта​C:Windows​

​ углу вебстраницы (только​ вариант и дает​ появится в ячейках​​ щелчкам мышью.​​Открываем исходный HTML-код запрошенной​ Visual Basic и​ y = Format(inpdate,​​ даты в прошлом​: Если значения во​​ а автоматом пересчитает​ сформирован и данные​ данных — Создать​​3​​, можно настроить частоту​​Во-первых, куда импортировать таблицу​​Код​). После открытия файла​ не спрашивайте почему​ пользователю возможность получать​

​ на листе:​Выберите в меню​ страницы (правой кнопкой​ вернуться в Excel,​ "yyyy") ‘формируем строку​ (даты заказа или​ всех столбцах, которые​ всё. Спасибо.​ будут на листе).​ Веб запрос​- порядковый номер​ обновления​ с данными:​

​ запроса в Блокноте​ эта стрелка находится​ курс нужной валюты​

​Для дополнительной настройки можно​Д​ по веб-странице -​ то через меню​ для веб-запроса sURI​ поставки, например), то​ необходимо умножать на​Всеволод коваленко бик​​ Нажимаем​​Для​ столбца в нашей​

​При открытии файла (Refresh​

​Во-вторых, откуда брать код​

​ должны увидеть примерно​ там, а не​ не только на​

​ щелкнуть по любой​

​анные — Импорт внешних​

​ этот макрос сэкономит​

​ курс изменяться не​

​: Ставишь в ячейку​

​ таблице, откуда мы​ on file open)​ валюты (можно установить​Евро​

​ следующее:​ рядом с таблицей​ текущий день, но​ из этих ячеек​ данных — Создать​Просмотр HTML-кода​​ Макросы,​ m & "&C_year="​ вам много времени.​ ​ будут, то необходимо​ А1 курс доллара.​и. готово!​​2007​ берем данные​​. Тогда при наличии​ флажок​ ​R01239​​Самое ценное здесь -​ — это вопрос​ и на любую​ правой кнопкой мыши​ веб-запрос​​в IE или​​или нажав ALT+F8,​ _ & y​ Вместо похода в​

​ в каждую ячейку​В нужной ячейке​

​Получилась вот такая​:​1​​ доступа к интернету​Использовать данное значение по​ ​Фунт стерлингов​ строка с адресом​​ к дизайнерам сайта).​ другую интересующую дату​ и выбрать в​(Data — Import external​​ что-то похожее в​ можно запустить наш​ ​ & "&date_req=" &​ архивы ЦБР достаточно​​ столбцов дописать умножение​

​ пишешь​ таблица:​Данные — Из Веба​- аргумент, включающий​ данные будут автоматически​ умолчанию​R01035​ и параметры запроса​

​Теперь ищем в правом​​ или интервал дат.​​ контекстном меню команду​ data — Web-query)​ других браузерах) и​ макрос​

​ d & "%2F"​ будет его запустить.​ на абсолютную ячейку​=​Excel сам создал​​Для​ для функции ВПР​​ обновляться каждый день,​(Use this value/reference for​​Японская иена​ в ней, которые​​ верхнем углу окна​ Для этого наш​Свойства диапазона​или в Excel​ ищем обозначение необходимой​GetDollar​ & m &​

​Откройте редактор Visual Basic,​ с курсом, например:​Затем щелкаешь мышкой​ именованый диапазон и​​Excel​ ​ приблизительный поиск, чтобы​​ т.е. таблица будет​ future refreshes)​R01820​ мы будем подставлять​ кнопку с дискетой​ веб-запрос надо превратить​(Data range properties)​ 2007/2010 нажмите кнопку​ валюты, например USD.​, ввести в появившееся​

​ "%2F" & y​ нажав ALT+F11 или​

​ в ячейке вводите​

  • ​ на А1 и​​ теперь, даже если​2010​
  • ​ можно было находить​​ самостоятельно дополняться новыми​, чтобы не указывать​Нужный код также можно​ — код нужной​Сохранить запрос​
  • ​ в параметрический, т.е.​​.​Из веба​Считаем на сколько символов​ окно дату и​
  • ​ ‘делаем запрос On​​ выбрав в меню​ =38000*$A$1, где $A$1​ нажимаешь F4, затем​ Вы внесете какую-то​:​ курсы и для​ данными.​ потом каждый раз​ подсмотреть в строке​ нам валюты (выделено​(Save Query)​ добавить к нему​В этом диалоговом​(Web)​ в исходнике от​

Курсы валют из интернета онлайн

Подскажите как в excel поставить курс доллара в одной ячейке и, чтобы все значения во всех столбцах на него умножались.

​ получилось следующее:​ — например в​1. Создаем веб-запрос (см.​ меняются каждые несколько​Адрес (Address)​

​ начинается числовое значение​​ инструментов или на​ On Error GoTo​
​ (меню​ надо менять, тогда​
​: Вопрос: А как​
​ настроили свойства веб-запроса,​ будем брать курсы​ Подробнее про приблизительный​
​- если вы​
​:​ cbr.iqy, т.е. идем​http://cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ=["Код валюты"]&date_req1=01.01.2000&r1=1&date_req2=["Дата"]&rt=1&mode=1​
​Мои документы​

Читайте также:  Как настроить статическую маршрутизацию cisco packet tracer

​ способ 1) к​​ минут, можно обновлять​введите URL сайта,​

​ самого курса. Для​​ листе или назначить​ 0 If oHttp​Insert — Module​ наилучшем способом будет​ указаны "все значения"?​ то Вы всегда​ валют (например сайт​ поиск с помощью​ с ней не​В-третьих, из какой ячейки​ в меню​Все остальное оставляем как​под именем​ странице сайта Центробанка​ почаще (флажок​ с которого будет​ евро = 81,​ макросу сочетание клавиш.​ Is Nothing Then​

​) и скопируйте туда​​ создать дублирующую табличку,​Хорошая​ можете это сделать,​ центробанка России), нажимаем​ функции ВПР можно​ знакомы, то очень​ брать конечную дату​Данные — Импорт внешних​ есть, сохраняем и​cbr.iqy.​ России с архивом​Обновлять каждые N мин.​ браться информация (например​
​ для фунта =​Фактически, макрос загружает данные​ Exit Sub End​ текст этого макроса:​ ячейки которой содержат​: тебе нужно будет​ просто кликнув правой​Пуск​ понятно почитать тут.​
​ советую сделать это.​ (тут также можно​ данных — Импортировать​ закрываем файл.​После этого окно​ курсов: http://cbr.ru/currency_base/dynamics.aspx​), а вот курсы​ http://www.finmarket.ru/currency/rates/) и нажмите​
​ 96, для иены​

Курс доллара для любой заданной даты

​ из архива сайта​ If oHttp.Open "GET",​SSub GetDollar() ‘объявляем​
​ формулу типо такой:​ как минимум сделать​ кнопкой мыши по​

​, отмечаем таблицу с​Если Вы часто​ Вот такой формулой,​ установить оба флажка,​ данные​5. Создаем новую книгу​ веб-запроса и весь​2. В форме слева​ валют, в большинстве​ Enter.​ = 89, для​

​ Центробанка РФ, поэтому​ sURI, False oHttp.Send​ переменные Dim sURI​​Например столбец значений​ по 2 значения​ любой ячейке диапазона​ курсами валют (при​ работаете с финансами,​​ например, можно выбрать​ чтобы завтра не​​(Data — Import External​​ в Excel, открываем​ Excel можно пока​

​ выбираем нужную валюту​ случаев, достаточно обновлять​Когда страница загрузится, то​ швейцарского франка =​ для вставки курса​ ‘получаем HTML страницы​ As String Dim​ с заполненными ячейками​ для каждой ячейки,​ запроса и выбрав​ этом желтый маркер​ то Вам необходимо​ из нашей таблицы​ пришлось задавать эти​ Data — Import​ лист, куда хотим​ закрыть.​ и задаем начальную​ раз в день​ на таблицах, которые​ 87 и т.д.​ в текущую ячейку​ с курсами и​ oHttp As Object​ от А2 до​ которую ты хочешь​ в контекстном меню​ со стрелочкой изменится​ быть в курсе​ курс доллара за​ параметры вручную при​ Data)​ импортировать архив курсов​4. Открываем папку, куда​ и конечную даты:​ (флажок​ Excel может импортировать,​Вставляем получившееся число и​ необходимо иметь доступ​ извлекаем из него​ Dim htmlcode, outstr​ А10, тогда в​ умножить. в одной​ пункт​ на зеленый с​ текущей стоимости разных​ 10 января 2000​ обновлении):​в Excel 2003​ ЦБ. В любую​ сохранили запрос и​3. Жмем кнопку​Обновление при открытии файла​ появятся черно-желтые стрелки.​ код валюты в​ в интернет (в​ курс доллара htmlcode​ As String Dim​

​ ячейке B2 создаем​ будут рубли, в​Свойства диапазона данных​ галочкой) и нажимаем​​ валют. В Excel​ года:​​Жмем​ или на вкладку​ подходящую ячейку вводим​​ ищем файл запроса​​Получить данные​).​ Щелчок по такой​ макрос в строку ​ данный момент). Данные​ = oHttp.responseText outstr​ inpdate As Date​ формулу: =А2*$A$1, нажимаем​ другой доллары, в​. Так же в​ кнопку​

​ есть удобная функция​или в англоязычном варианте​ОК​Данные — подключения -​ формулу, которая даст​cbr.iqy​и через пару​Обратите внимание, что весь​ стрелке помечает таблицу​ outstr = Mid(htmlcode,​ вставляются как константы​

​ = Mid(htmlcode, InStr(1,​ Dim d, m,​ Энтер и протягиваем​ тех, где рубли​

  1. ​ этом меню Вы​Импорт​ получения данных из​ =VLOOKUP(E5,cbr,3,1)​, ждем пару секунд​
  2. ​ Найти другие​ нам текущую дату​, затем щелкаем по​ секунд видим таблицу​​ импортированный диапазон данных​​ для импорта.​ InStr(1, htmlcode, "USD")​ (без связи и​ htmlcode, "USD") +​ y As Integer​
  3. ​ автозаполнением до В12.​ пишешь =(номер долларовой​ можете​.​ интернета он-лайн. Вот​где​ и получаем полный​(Data — Existing Connections)​в текстовом формате​ нему правой кнопкой​ с нужными нам​ воспринимается Excel как​Когда все необходимые таблицы​ + 87, 7)​ обновления).​
  4. ​ 87, 7) Set​ ‘выводим диалоговое окно​А2​ ячейки) *(ячейка, в​Изменить запрос​Шаг 3​

Данный код (пользовательская функция) позволяет получить данные о курсе валюты с сайта Центробанка.

Данную функцию можно использовать и в виде формулы на листе Excel (см. пример во вложении)

Поддерживается получение курсов рубля по отношению к следующим валютам:

AUD Австралийский доллар
AZN Азербайджанский манат
GBP Фунт стерлингов Соединенного королевства
AMD Армянский драм
BYR Белорусский рубль
BGN Болгарский лев
BRL Бразильский реал
HUF Венгерский форинт
DKK Датская крона
USD Доллар США
EUR Евро
INR Индийская рупия
KZT Казахский тенге
CAD Канадский доллар
KGS Киргизский сом
CNY Китайский юань
LVL Латвийский лат
LTL Литовский лит
MDL Молдавский лей
NOK Норвежская крона
PLN Польский злотый
RON Новый румынский лей
XDR СДР (специальные права заимствования)
SGD Сингапурский доллар
TJS Таджикский сомони
TRY Турецкая лира
TMT Новый туркменский манат
UZS Узбекский сум
UAH Украинская гривна
CZK Чешская крона
SEK Шведская крона
CHF Швейцарский франк
EEK Эстонская крона
ZAR Южноафриканский рэнд
KRW Вон Республики Корея
JPY Японская иена

Если вы желаете вывести информацию по всем валютам — используйте макрос ВывестиСегодняшниеКурсыВсехВалют:

Результат работы макроса ВывестиСегодняшниеКурсыВсехВалют:

Курс AUD (установлен 28/07/2010): 27,2968 рублей за 1 Австралийский доллар
Курс AZN (установлен 28/07/2010): 37,6342 рублей за 1 Азербайджанский манат
Курс BRL (установлен 28/07/2010): 17,1589 рублей за 1 Бразильский реал
.
Курс HUF (установлен 28/07/2010): 13,7407 рублей за 100 Венгерских форинтов
Курс DKK (установлен 28/07/2010): 52,7135 рублей за 10 Датских крон
Курс USD (установлен 28/07/2010): 30,2391 рублей за 1 Доллар США
Курс EUR (установлен 28/07/2010): 39,3139 рублей за 1 Евро
.
Курс CHF (установлен 28/07/2010): 28,6953 рублей за 1 Швейцарский франк
Курс EEK (установлен 28/07/2010): 25,1057 рублей за 10 Эстонских крон
Курс ZAR (установлен 28/07/2010): 41,1383 рублей за 10 Южноафриканских рэндов
Курс KRW (установлен 28/07/2010): 25,6003 рублей за 1000 Вон Республики Корея

Вложение Размер Загрузки Последняя загрузка
CurrencyRates.xls 33.5 КБ 288 1 год 24 недели назад
  • 94763 просмотра

Комментарии

Используется в виде надстройки курсы.xlam. формула =GetRate(P2;N3) в одной ячейке (в двух ячейках для двух валют). в третьей ячейке формула =СЕГОДНЯ(). Речь идет о работе на удаленном рабочем столе в корпоративной сети. Надстройка включена на двух компах

Видимо, вы используете этот код не как макрос, а как формулы в ячейках Excel (причем, еще и протянули эту формулу на много строк)
И для каждой ячейки Excel выполняется отдельный запрос курса, оттого и тормозит
Надо в одной ячейке формулу написать. А из других ячеек просто ссылаться на ячейку с формулой.
Тогда запрос к сайту будет выполняться только один раз, и тормозить не будет

Читайте также:  Как скачивать с github com

Поставил данный макрос и всё работает нормально. Но почему-то через какое-то время (дня 2-3) он начинает сильно грузить эксель. Формулы считаются с задержкой, при внесении данных в ячейки в строке состояния появляется сообщение "Расчёт 4 процессор(ы) 98%" или любая другая цифра процентов. А периодически эксель вообще подвисает до состояния "не отвечает". Иногда за день такое бывает пару раз, иногда прям чуть ли не по часу виснет и тормозит. Удаляешь макрос из файла — эксель просто летает.
Помогите, пожалуйста, сам не могу понять, почему такое может быть?

Поставил данный макрос и всё работает нормально. Но почему-то через какое-то время (дня 2-3) он начинает сильно грузить эксель. Формулы считаются с задержкой, при внесении данных в ячейки в строке состояния появляется сообщение "Расчёт 4 процессор(ы) 98%" или любая другая цифра процентов. А периодически эксель вообще подвисает до состояния "не отвечает". Иногда за день такое бывает пару раз, иногда прям чуть ли не по часу виснет и тормозит. Удаляешь макрос из файла — эксель просто летает.
Помогите, пожалуйста, сам не могу понять, почему такое может быть?

Эля, можем сделать под заказ.
По цене — от 1000 руб (если готовы оплатить — пишите в скайп или на почту)

Добрый день.
Помогите пожалуйста преобразовать данный макрос для сайта ЕЦБ, интересует как правило отношение EUR к USD.
https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference.
Большое спасибо. :*

Здравствуйте, Влад
Минимальная стоимость заказа у меня, — 1500 руб
Если устраивает — пишите в скайп, сделаю

Добрый день, сколько будет стоить сделать парсер, для вывода на сайт онлайн курса на золото и серебро в EUR за 1 гр.?
С сайта:
https://www.goldbroker.com/charts/gold-price/eur
https://www.goldbroker.com/charts/silver-price/eur

Ваш код не работает, потому что он не универсальный, — сайт поменялся, и код ищет курс не в том месте страницы.
Могу переделать функцию под заказ (если готовы оплатить)

Добрый день!
Может мне кто-нибудь помочь, посмотреть, почему не работает код?
Function КурсНБРБ(Optional ТипВалюты As String, Optional ByVal Дата As String) As Double

Application.Volatile True
Dim sRequest As String, sReqRes As String, sRes As String
Dim sDay As String, sMonth As String, sYear As String
Dim lPos As Long, lLastPos As Long, lDel As Long, oHttp
If IsMissing(ТипВалюты) Or ТипВалюты = "" Then ТипВалюты = "EUR"
If IsMissing(Дата) Or Дата = "" Then Дата = Now
If Not IsDate(Дата) Then Дата = CDate(Дата)
sDay = Format(Дата, "dd"): sMonth = Format(Дата, "mm"): sYear = Format(Дата, "yyyy")
sRequest = "http://www.nbrb.by/Services/XmlExRates.aspx C_month=" & sMonth & "&C_year=" & sYear & "&date_req=" & sDay & "%2F" & _
sMonth & "%2F" & sYear
On Error Resume Next
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
If oHttp Is Nothing Then Exit Function
oHttp.Open "GET", sRequest, False
oHttp.Send
sReqRes = oHttp.responseText
lPos = InStr(1, sReqRes, UCase(ТипВалюты), 1)
lPos = InStr(lPos, sReqRes, "", 1) + 4
lLastPos = InStr(lPos, sReqRes, "", 1)
lDel = Mid(sReqRes, lPos, lLastPos — lPos)
lPos = lLastPos + 10
lPos = InStr(lPos, sReqRes, "", 1) + 4
lLastPos = InStr(lPos, sReqRes, "", 1) — 7
sRes = Mid(sReqRes, lPos, 7)
sRes = sRes / lDel
Set oHttp = Nothing
sRes = Replace(sRes, ",", Mid(1 / 2, 2, 1))
КурсНБРБ = sRes
End Function

Здравствуйте Игорь возможно ли эту функцию подогнать под этого сайта http://nbt.tj/tj/kurs/kurs.php и как сделать Спасибо

Игорь, огромное Вам спасибо.
Все прекрасно работает, попробовал пока вставить USD в прайс.
По примерам все легко и просто, первый раз делал такое.
Буду почитывать Ваш сайт 🙂

Здравствуйте! Подскажите, кто знает, как написать макрос для "вытягивания" курса драгоценных металлов с сайта ЦБ РФ, например для золота. Вот, что у меня получилось, но не работает.
Sub GetZoloto()
Dim xmldoc, nodeList
On Error Resume Next
Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False
‘пример URL http://www.cbr.ru/scripts/xml_metall.asp?date_req1=14/02/2016&date_req2=.
If Not xmldoc.Load("http://www.cbr.ru/scripts/xml_metall.asp?date_req1=" & _
Format(InputBox("Введите начальную дату поиска в формате ДД.ММ.ГГГГ", "Курс Золота", Date), "dd/mm/yyyy") & _
"&date_req2=" & _
Format(InputBox("Введите конечную дату поиска в формате ДД.ММ.ГГГГ", "Курс Золота", Date), "dd/mm/yyyy")) Then Exit Sub
Set nodeList = xmldoc.SelectNodes("//Record[@Code=’1′]")
If nodeList.Length Then ActiveCell.Value = CDbl(nodeList.Item(0).ChildNodes(4).Text)
End Sub
И второй вопрос, как в этом макросе сделать MsgBox с выводом получившегося URL для проверки?
Спасибо всем, за любой ответ.

Нет, на сайте всё также.
Видимо, у вас в Windows (или в Excel) установлен другой десятичный разделитель.

В примере есть макрос Пример_Использования Функции_GetRate
Запустив его, вы увидите, что выводится корректное значение курса.
И формулы в примере возвращают корректное значение курса.

Курс евро на 1/31/2016 вытаскивает как 819077 (т.е. надо поделить на 10 000). Видимо указатель делителя на сайте цб изменился?

Здравствуйте, Марк.
Чтобы пересчитать все формулы на листе Excel — надо нажать кнопку F9

написать макрос для пересчета вы сможете, если не будете лениться, и поищете в интернете, что такое макросы, и куда их вставлять.
макрос будет из одной строки: (вставить код надо в модуль ЭтаКнига)

под нацбанк украины — много раз люди писали макросы. осталось только поискать в гугле готовое решение.

Очень нужен данный макрос GetRate для работы 🙂
Но, заметил, что данные курса (в частности используються валюты доллар и гривна) не обновляються постоянно). Как можно доработать этот макрос, чтобы все данные курсов обновлялись как при "Получении внешних данных" либо при открытии файла, либо принудительно с заданным интервалом времени. А еще лучше оба варианта. Обновление до актуального курса происходит только при нажатии на ячейке клавиш F2 и Enter.
PS В VBA — полный ноль, так что сам это реализовать/написать не смогу. Поэтому прошу помощи у знающих 🙂
PPS А еще если бы кто-то адаптировал так же данный макрос по Нацбанк Украины, но я знаю что у них нет своего API для прямого парсинга курсов.

Спасибо за информацию! а тем кто пытается умничать — пусть идут лесом

Усовершенствовать можно (брать любые данные с любого сайта)
Но, доработка бесплатных макросов, — только под заказ (не бесплатно)
Если готовы заплатить, — пишите на почту, что с какого сайта нужно взять.

Скажу больше, курс банка, что отображается в яндексе, это чисто информативно, он нам не полезен в жизни. Нам интересен курс продажи и покупки, а он отличается, именно с этими цифрами нам приходиться иметь дело. Я товар закупаю за доллары и продаю за рубли, соответственно мне доллары надо купить. Курс банка получается не интересен, новости я так смотрю.
Просим автора усовершенствовать фукцию

заглавная яндекса http://www.yandex.ru/
После 11-30 выкладывают курс на завтра. Отоброжается 2 курса (текущий и курс на момент конца торгов, т.е. завтрашний):
сегодня завтра
USD ЦБ 47,0294 −0,3247 46,7047
До 11-30 отображается только текущий.
Дело в следующем: когда видно что курс на момент торгов сильно превышает текущий, продажи импортного товара обычно уже ведутся по завтрашнему курсу. А ваша формула позволяет подставлять автоматически значения только текущего курса.

Читайте также:  Спулер печати андроид что это

А с какой страницы какого сайта (по какой ссылке) брать этот курс?

Сейчас крайне актуален не курс на сегоднящний день, а курс на момент окончания торгов (Яндекс выкладывает его как курс на завтрашний день в 11:30). Не подскажете как взять его с сайта ЦБ РФ? Что изменить в макросе и функции?

В ячейку с датой напишите для проверки формулу =СЕГОДНЯ()
тогда точно дата будет в нужном формате

Выдаёт 0
Загрузил макрос. В поле вписал код валюты и дату. Может дату как текст надо вписывать ?

Да неужели. у всех работает, а у вас нет.
Дело явно не в макросе. На другом компе проверьте

Игорь, если выбросить лишнее, то для USD можно сделать функцию:
Function GetUSD(Optional ByVal MyDate As Date) As Double
Dim xmldoc, nodeList
If MyDate = 0 Then MyDate = Date
On Error Resume Next
Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False
If Not xmldoc.Load("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" & Format(MyDate, "dd/mm/yyyy")) Then Exit Function
Set nodeList = xmldoc.SelectNodes("//Valute[@ID=’R01235′]")
If nodeList.Length Then GetUSD = CDbl(nodeList.Item(0).ChildNodes(4).Text)
End Function

Здравствуйте, Михаил
Этот код писал не я (просто взял где-то готовый, и сделал его в виде функции)
Там много лишнего в коде, — можно половину выкинуть.

В коде функции, на мой взгляд, лишние две строчки:
Set nodeList = xmldoc.selectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True)
Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value
Зачем они? node_attr ни где не используется да и strDate тоже

Не могли бы вы подсказат почему моя функция работает хорошо, когда я применяю её к одной ячейке, но когда я пытаюсь применить эту функцию для нескольких ячеек одновременно, она возвращает "0" для некоторых ячеек.

Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Double
On Error Resume Next
CurrencyName = UCase(CurrencyName): If Len(CurrencyName) <> 3 Then Exit Function
Set xmlDoc = CreateObject("Msxml.DOMDocument"): xmlDoc.async = False
url_request = "http://cbar.az/currencies/" & Format(RateDate, "dd.mm.yyyy") & ".xml"

If xmlDoc.Load(url_request) <> True Then Exit Function

Set nodeList = xmlDoc.SelectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True)
Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value
Set nodeList = xmlDoc.SelectNodes("*/ValType/Valute")
For i = 0 To nodeList.Length — 1
Set xmlNode = nodeList.Item(i).CloneNode(True)
If nodeList.Item(i).Attributes.getNamedItem("Code").Text = CurrencyName Then
CurrencyRate1 = (xmlNode.ChildNodes(2).Text)
CurrencyRate = CDbl(Replace(CurrencyRate1, ".", Application.International(xlDecimalSeparator)))
divisor = Val(xmlNode.ChildNodes(0).Text)
GetRate = CurrencyRate / divisor
Exit Function
End If
Next
End Function

Сегодня (13.06.13) перестал корректно работать макрос. Вместо курсов по некоторым валютам и датам отображает нули, причем скачал пример из этого поста, там тоже самое..

To:
#5Гость, 15 Апр 2013 — 12:12.
мне кажется что не работает на USD , всегда показываешь 7,993 .как исправить ?
а так вообще супер просто .

Усьо работает, просто курс 7.993 долго держится. возьми, например, дату год назад.

Мало ли что там не работает. есть много сайтов, где выложены нерабочие макросы.
Я отвечаю только за свои макросы, опубликованные у меня на сайте.

Если вам нужен работающий макрос под НБУ, — могу сделать (не бесплатно)

Я это комментировал , что не работает USD с НБУ.
> Есть готовая UDF функция для импорта курсов валют с сайта НБУ

Ну как это не работает. есть же пример использования функции:

Как видите, показывает точный сегодняшний курс доллара с сайта центробанка.

Заметил интересную особенность. Иногда отображает курс ЕВРО (на остальных не проверял) на будущую дату

Дата: 06.05.2013 — Курс ЕВРО: 40,5132
Дата: 09.05.2013 — Курс ЕВРО: 40,5132

Дата: 18.05.2013 — Курс ЕВРО: 0,0000
Дата: 20.05.2013 — Курс ЕВРО: 0,0000

Но, видимо, это недочет со стороны сайта cbr.ru.

мне кажется что не работает на USD , всегда показываешь 7,993 .как исправить ?
а так вообще супер просто .

Есть готовая UDF функция для иморта курсов валют с сайта НБУ. Посмотри здесь:
http://moonexcel.ho.ua/index.php?page=tip_kursNBU_ua

EducatedFool, спасибо за совет. Поменял — все заработало.

Да, есть такая проблема, — когда писал макрос, не обратил на это внимания.
Чтобы избежать ошибки, надо заменить строку кода

Судя по всему, при ошибка появляется при конвертации из Single на Double
Если же произвести указанную замену в коде, проблема исчезнет.

Добрый день, EducatedFool,

У меня вопрос по поводу точности Вашего макроса — почему-то не всегда корректно значение четвертого знака после запятой? Ведь, насколько я понял, запрос к серверу ЦБР возвращает значения с четырьмя знаками после запятой.

Комментарий Сумма (Евро) Дата Курс Евро на заданную дату Сумма (Рубли)
По данным с сайта cbr.ru 10000 27.12.2012 40,3659000 403659,00
По данным из Вашего макроса 10000 27.12.2012 40,3658981 403658,98

Если обернуть Ваш макрос в функцию округления с числом разрядов равным 4 (=ОКРУГЛ(GetRate("EUR";"Дата");4)), то результат получается корректный. Можно ли как-нибудь решить эту проблему в макросе?

Да, можно и с нац. банка взять данные, и из большинства других банков.

Если самостоятельно не справитесь с адаптацией кода под другой банк — оформляйте заказ на сайте, сделаю (не бесплатно)

а с нац банка можно вытаскивать данные ? по гривнам

В случае необходимости проведения расчетов на основе текущего курса валют, можно, используя Импорт внешних данных в EXCEL, автоматически загружать данные о курсе валют в файл.

1. Выберите в меню Данные — Импорт внешних данных — Создать веб-запрос

2. В появившемся окне в строку Адрес введите URL сайта, с которого будет браться информация (например: www.cbr.ru или www.yandex.ru ), и нажмите Enter или Пуск.

3. Когда страница загрузится, то на таблицах, которые EXCEL может импортировать, появятся черно-желтые стрелки. Щелчок по такой стрелке помечает таблицу для импорта.

4. Когда все необходимые таблицы помечены — нажмите кнопку Импорт внизу окна.

5. В появившемся окне укажите место для загрузки данных и нажмите ОК

Спустя некоторое время, нужное для загрузки данных, содержимое импортируемых таблиц появится в ячейках на листе.

Для дополнительной настройки можно щелкнуть по любой из этих ячеек правой кнопкой мыши и выбрать в контекстном меню команду Свойства диапазона данных.

В этом диалоговом окне можно, при желании, настроить периодичность обновления и другие параметры:

Фоновое обновление – рекомендуется для больших наборов данных. При этом вы сможете продолжать работу в EXCEL, не дожидаясь завершения обновления.

Обновлять каждые — регулярное автоматическое обновление данных, через выбранный промежуток времени.

Обновление при открытии файла — автоматическое обновление данных при открытии книги.

Понравилось? Поделись с друзьями

Семинары. Вебинары. Конференции

Актуальные темы. Лучшие лекторы Москвы и РФ. Сертификаты ИПБР. Более 30 тематик в месяц.

Ссылка на основную публикацию
Крепление к мокрому фасаду
Система «мокрого» фасада была разработана в 50-х годах 20 века в Германии. Оригинальное название WDVS (Wärmedämmverbundsystem) или система термоизоляции. В...
Компьютер не видит принтер кэнон
Практически каждый из нас может сталкиваться с такой проблемой, когда компьютер вдруг перестает видеть принтер, а иногда компьютер не видит...
Компьютер не видит радар детектор sho me
Проверьте, что устройство подключено. А как? Один из часто возникающих вопросов: «Всё настроено, как описано, но не видит радара, пишет...
Крепление телевизора на стену своими руками чертежи
Одним из вариантов размещения плоских телевизоров является их крепление на стену. Такое решение позволяет сэкономить место, при этом все выглядит...
Adblock detector