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

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

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

Расскажите как у вас это происходит, а я уж по аналогии :)
...
Рейтинг: 0 / 0
19.05.2010, 10:16
    #36635657
Sator Arepo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Вот сюда зайдите http://www.cbr.ru/scripts/Root.asp?Prtid=SXML
...
Рейтинг: 0 / 0
19.05.2010, 10:21
    #36635668
Serge 007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
AquaForm, здесь более чем подробно: http://www.planetaexcel.ru/tip.php?aid=32
...
Рейтинг: 0 / 0
19.05.2010, 10:32
    #36635703
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Если интересно, файл с привязкой к Банку Латвии, простенько, но использую в работе.
...
Рейтинг: 0 / 0
19.05.2010, 10:57
    #36635784
Tamozhnya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Код: 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
19.05.2010, 11:08
    #36635814
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Tamozhnya,
это в чём работает?
...
Рейтинг: 0 / 0
08.06.2010, 15:37
    #36675775
Tamozhnya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Hugo121,

FoxPro 8
Правда здесь использованы некоторые пользовательские функции
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.01.2013, 15:48
    #38118227
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
...
Рейтинг: 0 / 0
23.01.2013, 13:37
    #38121320
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Пользуюсь свежим вопросом, чтобы спросить.
Где-то, когда-то спёр чей-то макрос, выложенный открыто. Макрос лезет на ЦБ РФ и читает курсы валют.
Отказывается работать у меня на минибуке с вин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
23.01.2013, 13:53
    #38121357
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel - Как в ячейку получить курс евро из интернета
Убрать надо только из строки и :

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

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

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


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