Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Получение котировок на драгметаллы с сайта ЦБ РФ - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение котировок на драгметаллы с сайта ЦБ РФ (Функции/Function)
Получение котировок на драгметаллы с сайта ЦБ РФ
IWI Дата: Понедельник, 15.02.2016, 11:32 | Сообщение № 21
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
ну дык
"MSXML2.DOMDocument.4.0"
Не создает у меня такой объект, (хотя если включить MsgBox, для проверки, ссылка появляется правильная), выходит из процедуры, вот здесь "If Not xmldoc.Load(url_request) Then Exit Sub". А "Msxml.DOMDocument" проходит дальше, и "MSXML2.DOMDocument.6.0" тоже прооходит дальше, но с большой задержкой, но так же код не работает. По курсу доллара и евро "Msxml.DOMDocument" работает нормально, а вот на металлах не хочет, не ищет ничего. В чем проблема может быть? Excel 16, Win10x64. У кого-нибудь хоть работает, пример в предыдущем посте, проверьте пожалуйста.


Сообщение отредактировал IWI - Понедельник, 15.02.2016, 23:19
 
Ответить
Сообщение
ну дык
"MSXML2.DOMDocument.4.0"
Не создает у меня такой объект, (хотя если включить MsgBox, для проверки, ссылка появляется правильная), выходит из процедуры, вот здесь "If Not xmldoc.Load(url_request) Then Exit Sub". А "Msxml.DOMDocument" проходит дальше, и "MSXML2.DOMDocument.6.0" тоже прооходит дальше, но с большой задержкой, но так же код не работает. По курсу доллара и евро "Msxml.DOMDocument" работает нормально, а вот на металлах не хочет, не ищет ничего. В чем проблема может быть? Excel 16, Win10x64. У кого-нибудь хоть работает, пример в предыдущем посте, проверьте пожалуйста.

Автор - IWI
Дата добавления - 15.02.2016 в 11:32
IWI Дата: Вторник, 16.02.2016, 20:48 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Помогите, дайте рабочий вариант по извлечению курса золота с сайта ЦБ РФ.
Такой код не работает!


Сообщение отредактировал IWI - Вторник, 16.02.2016, 20:53
 
Ответить
СообщениеПомогите, дайте рабочий вариант по извлечению курса золота с сайта ЦБ РФ.
Такой код не работает!

Автор - IWI
Дата добавления - 16.02.2016 в 20:48
krosav4ig Дата: Среда, 17.02.2016, 01:19 | Сообщение № 23
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
1 Зачем
если все равно xpath функцией выбирается последний элемент

2 зачем .ChildNodes(4), если дочерний элемент уже выбран в xpath , тем более там всего 2 дочерних элемента - Buy и Sell

3 раз у вас стоит msxml6, то [vba]
Код
Set xmldoc = CreateObject("MSXML2.DOMDocument.6.0")
[/vba](для использования функций в xpath нужна любая версия msxml выше 3)



[p.s.]в прошлый раз как-то невнимательно код смотрел, не обратил внимания на последнюю строку


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 17.02.2016, 01:35
 
Ответить
Сообщение1 Зачем
если все равно xpath функцией выбирается последний элемент

2 зачем .ChildNodes(4), если дочерний элемент уже выбран в xpath , тем более там всего 2 дочерних элемента - Buy и Sell

3 раз у вас стоит msxml6, то [vba]
Код
Set xmldoc = CreateObject("MSXML2.DOMDocument.6.0")
[/vba](для использования функций в xpath нужна любая версия msxml выше 3)



[p.s.]в прошлый раз как-то невнимательно код смотрел, не обратил внимания на последнюю строку

Автор - krosav4ig
Дата добавления - 17.02.2016 в 01:19
IWI Дата: Среда, 17.02.2016, 10:23 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
krosav4ig, отлично, теперь работает. А почему же с "Msxml.DOMDocument" не работало, какие недочеты были, что надо исправить, если не трудно объясните для понимания функции. И подскажите, что надо вставить в MsgBox, чтоб вывести на экран, то что будет копироваться, это мне надо для отладки. Спасибо!


Сообщение отредактировал IWI - Среда, 17.02.2016, 10:37
 
Ответить
Сообщениеkrosav4ig, отлично, теперь работает. А почему же с "Msxml.DOMDocument" не работало, какие недочеты были, что надо исправить, если не трудно объясните для понимания функции. И подскажите, что надо вставить в MsgBox, чтоб вывести на экран, то что будет копироваться, это мне надо для отладки. Спасибо!

Автор - IWI
Дата добавления - 17.02.2016 в 10:23
IWI Дата: Понедельник, 12.09.2016, 14:19 | Сообщение № 25
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Подскажите, нужно к полученному значению постоянно плюсовать 0,35 в той же ячейке, как это сделать грамотно в самом макросе?


Сообщение отредактировал IWI - Понедельник, 12.09.2016, 14:20
 
Ответить
СообщениеПодскажите, нужно к полученному значению постоянно плюсовать 0,35 в той же ячейке, как это сделать грамотно в самом макросе?

Автор - IWI
Дата добавления - 12.09.2016 в 14:19
_Boroda_ Дата: Понедельник, 12.09.2016, 14:43 | Сообщение № 26
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вы про вот это?
[vba]
Код
If Not elem Is Nothing Then ActiveCell.Value = CDbl(elem.Text)+0.35
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВы про вот это?
[vba]
Код
If Not elem Is Nothing Then ActiveCell.Value = CDbl(elem.Text)+0.35
[/vba]

Автор - _Boroda_
Дата добавления - 12.09.2016 в 14:43
IWI Дата: Понедельник, 12.09.2016, 15:11 | Сообщение № 27
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
А значения будут текст или цифры? Надо цифры.
И что-то ошибка выскакивает.


Сообщение отредактировал IWI - Понедельник, 12.09.2016, 15:15
 
Ответить
СообщениеА значения будут текст или цифры? Надо цифры.
И что-то ошибка выскакивает.

Автор - IWI
Дата добавления - 12.09.2016 в 15:11
_Boroda_ Дата: Понедельник, 12.09.2016, 15:12 | Сообщение № 28
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цифры.
Да Вы попробуйте, сами все увидите.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЦифры.
Да Вы попробуйте, сами все увидите.

Автор - _Boroda_
Дата добавления - 12.09.2016 в 15:12
IWI Дата: Понедельник, 12.09.2016, 15:24 | Сообщение № 29
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Большой пардон. Мне надо вот в этом макросе см. спойлер.
Доступно только для пользователей
IWI

Сообщение отредактировал IWI - Понедельник, 12.09.2016, 15:26
 
Ответить
СообщениеБольшой пардон. Мне надо вот в этом макросе см. спойлер.
Доступно только для пользователей

Автор - IWI
Дата добавления - 12.09.2016 в 15:24
_Boroda_ Дата: Понедельник, 12.09.2016, 16:07 | Сообщение № 30
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
[vba]
Код
ActiveCell.Value = outstr+0.35
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение[vba]
Код
ActiveCell.Value = outstr+0.35
[/vba]

Автор - _Boroda_
Дата добавления - 12.09.2016 в 16:07
IWI Дата: Понедельник, 12.09.2016, 17:02 | Сообщение № 31
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Останавливает ошибку, на этой строчке. Что-то не так. Я с самого начала так и сделал, но попробовал не получается, потому сюда и решил обратиться за помощью. Ув. _Boroda_, спасибо, что откликнулись и не бросаете!


Сообщение отредактировал IWI - Понедельник, 12.09.2016, 17:05
 
Ответить
СообщениеОстанавливает ошибку, на этой строчке. Что-то не так. Я с самого начала так и сделал, но попробовал не получается, потому сюда и решил обратиться за помощью. Ув. _Boroda_, спасибо, что откликнулись и не бросаете!

Автор - IWI
Дата добавления - 12.09.2016 в 17:02
_Boroda_ Дата: Понедельник, 12.09.2016, 17:12 | Сообщение № 32
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У мня так работает
[vba]
Код
Sub Investing_1_Usd()
Dim sURI  As String
Dim oHttp As Object
Dim htmlcode, outstr  As String

sURI = "http://ru.investing.com/currencies/usd-rub/"
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 Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "Спрос/Предл") + 76, 6) 'для покупки 131
Set oHttp = Nothing
'outstr = Replace(outstr, ",", ".")
ActiveCell.Value = CSng(outstr) + 0.35
End Sub
[/vba]
Да и без CSng тоже нормально


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ мня так работает
[vba]
Код
Sub Investing_1_Usd()
Dim sURI  As String
Dim oHttp As Object
Dim htmlcode, outstr  As String

sURI = "http://ru.investing.com/currencies/usd-rub/"
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 Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "Спрос/Предл") + 76, 6) 'для покупки 131
Set oHttp = Nothing
'outstr = Replace(outstr, ",", ".")
ActiveCell.Value = CSng(outstr) + 0.35
End Sub
[/vba]
Да и без CSng тоже нормально

Автор - _Boroda_
Дата добавления - 12.09.2016 в 17:12
IWI Дата: Понедельник, 12.09.2016, 17:32 | Сообщение № 33
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Я правильно понимаю, что правилась только эта строчка [vba]
Код
ActiveCell.Value = CSng(outstr) + 0.35
[/vba] Потому, что у меня так тоже не работает. В чем может быть причина? Excel 2016

А, заметил. Закоментирована верхняя строка. Так теперь работает!
Огромное спасибо!


Сообщение отредактировал IWI - Понедельник, 12.09.2016, 17:35
 
Ответить
СообщениеЯ правильно понимаю, что правилась только эта строчка [vba]
Код
ActiveCell.Value = CSng(outstr) + 0.35
[/vba] Потому, что у меня так тоже не работает. В чем может быть причина? Excel 2016

А, заметил. Закоментирована верхняя строка. Так теперь работает!
Огромное спасибо!

Автор - IWI
Дата добавления - 12.09.2016 в 17:32
_Boroda_ Дата: Понедельник, 12.09.2016, 17:34 | Сообщение № 34
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А зеленое?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА зеленое?

Автор - _Boroda_
Дата добавления - 12.09.2016 в 17:34
IWI Дата: Понедельник, 12.09.2016, 19:39 | Сообщение № 35
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
А на сайте хоумкредит не работает почему-то, пишет ошибка на этой же строчке.
Доступно только для пользователей


Сообщение отредактировал IWI - Понедельник, 12.09.2016, 19:40
 
Ответить
СообщениеА на сайте хоумкредит не работает почему-то, пишет ошибка на этой же строчке.
Доступно только для пользователей

Автор - IWI
Дата добавления - 12.09.2016 в 19:39
_Boroda_ Дата: Вторник, 13.09.2016, 14:27 | Сообщение № 36
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А так?
[vba]
Код
Sub EUR_покупка_продажа_2()
Dim sURI As String
Dim oHttp As Object
Dim htmlcode, outstr As String

sURI = "http://www.homecredit.ru/"
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 Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "EUR") + 1499, 5) 'aey i?iaa?e aaieii 1449 eciaieou ia 1499
Set oHttp = Nothing
outstr = Replace(outstr, ".", ",")
ActiveCell.Value = CSng(outstr) + 0.35
End Sub
[/vba]
Попробуйте и для первого варианта


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА так?
[vba]
Код
Sub EUR_покупка_продажа_2()
Dim sURI As String
Dim oHttp As Object
Dim htmlcode, outstr As String

sURI = "http://www.homecredit.ru/"
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 Sub
End If
oHttp.Open "GET", sURI, False
oHttp.Send
htmlcode = oHttp.responseText
outstr = Mid(htmlcode, InStr(1, htmlcode, "EUR") + 1499, 5) 'aey i?iaa?e aaieii 1449 eciaieou ia 1499
Set oHttp = Nothing
outstr = Replace(outstr, ".", ",")
ActiveCell.Value = CSng(outstr) + 0.35
End Sub
[/vba]
Попробуйте и для первого варианта

Автор - _Boroda_
Дата добавления - 13.09.2016 в 14:27
IWI Дата: Вторник, 13.09.2016, 14:45 | Сообщение № 37
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Да, так работает, спасибо! Как же найти универсальный вариант? И почему с одним сайтом работает так, с другим по другому?


Сообщение отредактировал IWI - Вторник, 13.09.2016, 14:58
 
Ответить
Сообщение_Boroda_, Да, так работает, спасибо! Как же найти универсальный вариант? И почему с одним сайтом работает так, с другим по другому?

Автор - IWI
Дата добавления - 13.09.2016 в 14:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение котировок на драгметаллы с сайта ЦБ РФ (Функции/Function)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!