Страницы: 1
RSS
UDF с курсом валют.
 
Возможно ли написать такую функцию, которая будет конвертировать валюту в ячейке исходя из текущего курса?  
Например в А1 10 олешков, в В1 ЮДФ =КУРС(А1;810) , результат = 302 (например по ЦБ).  
Но если применить эту функцию завтра, то результат будет уже 304 (например по ЦБ).  
 
Спасибо.
 
Я такую даже видел... если не путаю...
 
Не нашёл - переделал. Сможешь доделать?  
Кстати, исходник отсюда - post_141938
 
{quote}{login=Hugo}{date=12.08.2010 04:12}{thema=}{post}Сможешь доделать?{/post}{/quote}Ух ё...  
Это я код глянул :(  
 
Нет конечно.
 
Там много лишнего - сам прежний код не нужен, поиск другой валюты тоже, MIBIDRng и MIACRRng тоже...  
И похоже что функция будет только на определённую валюту. Сейчас выводит доллары. Умножения тоже нет - ну это видно...
 
http://www.planetaexcel.ru/tip.php?aid=91
 
Вот эту чуть подчистил - тянет доллары.
 
Так там по ссылке макрос, а требуется формула. А макрос кстати почти как в моём файле от  
'дата создания 12/11/2008  
'Pavel55
 
{quote}{login=Hugo}{date=12.08.2010 04:20}{thema=}{post}И похоже что функция будет только на определённую валюту.{/post}{/quote}  
=КУРС(А1;810) 810 - код рубля.  
Функция должна иметь возможность выбора...
 
А, точно. Можно сделать вообще, но можно ли в частности - надо смотреть, что там в cbr. С украинского сайта точно шёл и код, и наименование...  
Т.е. надо переделать механизм поиска, сейчас ищет "USD", а надо задать поиск по коду. Хотя... может в параметрах наименование передавать? Но надо глянуть, как там на сайте, не бегает ли расположение...
 
Вот что выдаёт - можно пропустить после кода 5 "<td" и брать.  
 
[tr][td]051[/td]
[td]  AMD[/td]
[td]1000[/td]
[td]  Армянских драмов[/td]
[td]82,0788[/td][/tr]
[tr][td]974[/td]
[td]  BYR[/td]
[td]1000[/td]
[td]  Белорусских рублей[/td]
[td]10,1564[/td][/tr]
[tr][td]975[/td]
[td]  BGN[/td]
[td]1[/td]
[td]  Болгарский лев[/td]
[td]20,1461[/td][/tr]
[tr][td]986[/td]
[td]  BRL[/td]
[td]1[/td]
[td]  Бразильский реал[/td]
[td]17,2334[/td][/tr]
[tr][td]348[/td]
[td]  HUF[/td]
[td]100[/td]
[td]  Венгерских форинтов[/td]
[td]14,0227[/td][/tr]
[tr][td]410[/td]
[td]  KRW[/td]
[td]1000[/td]
[td]  Вон Республики Корея[/td]
[td]25,5477[/td][/tr]
[tr][td]208[/td]
[td]  DKK[/td]
[td]10[/td]
[td]  Датских крон[/td]
[td]52,8855[/td][/tr]
[tr][td]840[/td]
[td]  USD[/td]
[td]1[/td]
[td]  Доллар США[/td]
[td]30,2050[/td][/tr]
[tr][td]978[/td]
[td]  EUR[/td]
[td]1[/td]
[td]  Евро[/td]
[td]39,4417[/td][/tr]
[tr][td]356[/td]
[td]  INR[/td]
[td]100[/td]
[td]  Индийских рупий[/td]
[td]64,8246[/td][/tr]
[tr][td]398[/td]
[td]  KZT[/td]
[td]100[/td]
[td]  Казахских тенге[/td]
[td]20,4946[/td][/tr]
[tr][td]124[/td]
[td]  CAD[/td]
[td]1[/td]
[td]  Канадский доллар[/td]
[td]29,1301[/td][/tr]
[tr][td]417[/td]
[td]  KGS[/td]
[td]100[/td]
[td]  Киргизских сомов[/td]
 
Вот, чем я пользуюсь.  
Там подробные комментарии. На самом деле код очень короткий.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
И надо искать ="right">840[/td]+перевод строки для верности, а то найдёт например
[td]82,0788[/td][/tr]
вместо 788 :)
 
Да, по названию надёжнее искать, но как бы не промахнуться...
 
Hugo, посмотри мой пример. Там всё ищется правильно. Ещё ни разу ошибок не давало.  
А комментарии писал так подробно чтобы легко было перенастроить если вдруг формат таблицы изменится.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Я эти формулы "допиливал" в http://www.planetaexcel.ru/forum.php?thread_id=3816
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А вот у меня дало :)  
Убрал CSng, возвернул определение разделителя :)  
А округление в формате...
 
Хотя разделитель лучше по-Пристовски определять:  
mid$(1/2,2,1)  
Я так в переделанной формуле написал, переделал исходное.
 
Есть один косяк в формуле - надо в начало добавить Application.Volatile.  
А то без пинка не пересчитает!!!
 
Можете попробовать ещё и эту UDF: http://excelvba.ru/code/CurrencyRate
 
Я ж говорил - видел... :)
 
А вот почему-то формула от Educated при открытии не пересчитывается, даже Volatile не помогает...  
А мой вариант пересчитывает. См. архив, там только сравнить не с чем, сами запишите сегодняшний курс и сравните завтра.
Страницы: 1
Читают тему
Наверх