powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - Как в ячейку получить курс евро из интернета
15 сообщений из 15, страница 1 из 1
Excel - Как в ячейку получить курс евро из интернета
    #36635607
AquaForm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Встал вопрос о необходимость получения текущего курса евро в excel из интернета. Возможно ли это реализовать и как?

Заранее спасибо за помощь.
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635636
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AquaForm, возможно, но надо знать, с какого сайта нужен курс, и есть ли там такой сервис. Я думаю, Вам ведь не подойдёт курс из моей страны?
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635644
AquaForm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, ну мне хотя бы как пример.. курс буду брать с rbc.ru

Расскажите как у вас это происходит, а я уж по аналогии :)
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635657
Фотография Sator Arepo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сюда зайдите http://www.cbr.ru/scripts/Root.asp?Prtid=SXML
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635668
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AquaForm, здесь более чем подробно: http://www.planetaexcel.ru/tip.php?aid=32
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635703
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если интересно, файл с привязкой к Банку Латвии, простенько, но использую в работе.
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635784
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
FUNCTION GetCursesFromWeb
  PRIVATE i, poExcel, poActiveSheet, pcUrl, pdCusrDate, pdCurs, ta

  ta = CREATEOBJECT("TabloAnl")
  ta.first_date = DATE()
  ta.last_date = DATE() +  1 
  ta.kod_sch = sprval.ITEM
  IF !my_edit("CursDate", .F., .T.) THEN
    RETURN .F.
  ENDIF

  poExcel = CREATEOBJECT("Excel.Application")
  poExcel.WorkBooks.ADD()
  *!*   poExcel.ScreenUpdating= .T.
  *!*   poExcel.Visible= .T.
  poActiveSheet = poExcel.ActiveSheet

  *http://mirror.cbr.ru/currency_base/dynamics.asp?VAL_NM_RQ=R01035&r1= 0 &date_req1= 01 %2F09%2F2004&date_req2= 02 %2F09%2F2005&C_month= 09 &C_year= 2005 &rt= 0 &mode= 1 &val_name=%C0%ED%E3%EB%E8%E9%F1%EA%E8%E9+%F4%F3%ED%F2+%F1%F2%E5%F0%EB%E8%ED%E3&x= 42 &y= 6 
  *************  Запрос к серверу cbr.ru
  pcUrl = "URL;http://mirror.cbr.ru/currency_base/dynamics.asp?VAL_NM_RQ=R0"
  pcUrl = pcUrl + Get_Name("sprval", "item", "cod_cbr", ta.kod_sch)
  pcUrl = pcUrl + "&date_req1="
  pcUrl = pcUrl + PADL(DAY(ta.first_date),  2 , "0") + "%2F"
  pcUrl = pcUrl + PADL(MONTH(ta.first_date),  2 , "0") + "%2F"
  pcUrl = pcUrl + PADL(YEAR(ta.first_date),  4 , "0")
  pcUrl = pcUrl + "&r1=1&date_req2="
  pcUrl = pcUrl + PADL(DAY(ta.last_date),  2 , "0") + "%2F"
  pcUrl = pcUrl + PADL(MONTH(ta.last_date),  2 , "0") + "%2F"
  pcUrl = pcUrl + PADL(YEAR(ta.last_date),  4 , "0")
  pcUrl = pcUrl + "&C_month=" + PADL(MONTH(ta.first_date),  2 , "0")
  pcUrl = pcUrl + "&C_year=" + PADL(YEAR(ta.first_date),  4 , "0")
  pcUrl = pcUrl + "&rt=0&mode=1&val_name=%C4%EE%EB%EB%E0%F0+%D1%D8%C0&x=51&y=4"

  WITH poActiveSheet.QueryTables.ADD(pcUrl, poActiveSheet.RANGE("A1"))
    .WebTables = "38"
    .REFRESH
  ENDWITH

  nStart = SECONDS()
  Wait_msg("Идет чтение курсов валют с сервера: cbr.ru")
  DO WHILE !poActiveSheet.APPLICATION.Cells[ 1 ,  1 ].TEXT = "Дата" AND SECONDS() - nStart <  20 
  ENDDO
  clear_wait()

  CREATE CURSOR tmpCurses(dCusrDate d, nCurs N( 17 ,  4 ))

  FOR i =  2  TO ta.last_date - ta.first_date +  2 
    IF EMPTY(ALLTRIM(poActiveSheet.APPLICATION.Cells[i,  1 ].TEXT))
      LOOP
    ENDIF

    pdCusrDate = IIF(ConvPossible(VARTYPE(poActiveSheet.APPLICATION.Cells[i,  1 ].VALUE), "D"),;
      VarToVar(poActiveSheet.APPLICATION.Cells[i,  1 ].VALUE, "D"), {})
    pdCurs = IIF(ConvPossible(VARTYPE(poActiveSheet.APPLICATION.Cells[i,  3 ].VALUE), "N"),;
      VarToVar(poActiveSheet.APPLICATION.Cells[i,  3 ].VALUE, "N"),  0 )

    IF !EMPTY(pdCusrDate) AND !EMPTY(pdCurs)
      INSERT INTO tmpCurses(dCusrDate, nCurs) VALUES (pdCusrDate, pdCurs)
    ENDIF

  NEXT i

  poExcel.DisplayAlerts = .F.
  poExcel.QUIT
  *  msgbox("!")

  SELECT tmpCurses
  SCAN
    sbor_sql(GN_SERVERTYPE, "Select * from spsval where date_doc = ?tmpCurses.dCusrDate and kod_val = ?ta.kod_sch", "tmpSpsval")
    IF RECCOUNT("tmpSpsval") =  0  THEN
      AddNewRec("Spsval", "Item", "kod_val", ta.kod_sch, "date_doc", tmpCurses.dCusrDate, "kurs", tmpCurses.nCurs)
    ELSE
      IF tmpCurses.nCurs <> tmpSpsval.kurs THEN
        sbor_sql( 0 , "Update Spsval set kurs = tmpCurses.nCurs where item = tmpSpsval.item")
        sbor_sql(GN_SERVERTYPE, "Update Spsval set kurs = ?tmpCurses.nCurs where item = ?tmpSpsval.item")
      ENDIF
    ENDIF
  ENDSCAN

  RETURN .T.
ENDFUNC
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36635814
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tamozhnya,
это в чём работает?
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #36675775
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

FoxPro 8
Правда здесь использованы некоторые пользовательские функции
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Excel - Как в ячейку получить курс евро из интернета
    #38118227
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #38121320
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуюсь свежим вопросом, чтобы спросить.
Где-то, когда-то спёр чей-то макрос, выложенный открыто. Макрос лезет на ЦБ РФ и читает курсы валют.
Отказывается работать у меня на минибуке с вин7-начальная, зато на ХП работает безотказно. У меня ХП на большом буке. И там, и там ехсел-2003. Но и в ех-2010 под ХП работает прекрасно.

Помогите, люди добрые разобраться и исправить. Грешу на недостаток XML в моём вин7-начальн., но я не спец.
Макрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Single
    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://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(RateDate, "dd\/mm\/yyyy")

    If xmldoc.Load(url_request) <> True Then Exit Function    ' '&#199;&#224;&#239;&#240;&#238;&#241; &#234; &#241;&#229;&#240;&#226;&#229;&#240;&#243; &#214;&#193;&#208;

    '' &#206;&#225;&#240;&#224;&#225;&#238;&#242;&#234;&#224; &#239;&#238;&#235;&#243;&#247;&#229;&#237;&#237;&#238;&#227;&#238; &#238;&#242;&#226;&#229;&#242;&#224;
    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("*/Valute")
    For i = 0 To nodeList.Length - 1
        Set xmlNode = nodeList.Item(i).CloneNode(True)
        If xmlNode.childNodes(1).Text = CurrencyName Then
            CurrencyRate = CDbl(xmlNode.childNodes(4).Text)
            divisor = Val(xmlNode.childNodes(2).Text)
            GetRate = CurrencyRate / divisor
            Exit Function
        End If
    Next

End Function




Ещё даю снимок во время выполения. Видно, что собственно обращение к ЦБ возвращает не TRUE:
xmldoc.Load(url_request) <> True

Но в ХП работает, а вин7-нача - нет.
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #38121357
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрать надо только из строки и :

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

Хотел как лучше.
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #38123634
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, с диска грузила, а с сайтов нет. Что cbr, что sql.ru

Не знаю, что произошло, но когда позагружал через меню веб-запросы, обнаружил,что и макрос заработал.
Закрыл эксел,открыл снова - работает. В общем чудеса.
Посему отбой, хотя теоретическое любопытство осталось.
Спасибо всем, кто пытался потратить время.
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #38225008
Marina_Kyiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для жителей Украини есть готовая функция для иморта курсов валют с сайта НБУ в Excel:
...
Рейтинг: 0 / 0
Excel - Как в ячейку получить курс евро из интернета
    #38225018
Marina_Kyiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для жителей Украини есть готовая функция для иморта курсов валют с сайта НБУ в Excel:
http://moonexcel.ho.ua/index_ru.php?page=tip_kursNBU_ru
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - Как в ячейку получить курс евро из интернета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]