Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2010, 19:59   #1
Ilya9999
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 7
Восклицание Загрузка рисунка

Подскажите возможно ли сделать, чтобы в Excel каким-либо образом загружалось изображение со стороннего ресурса? т.е. на определённом листе при обновлении обновлялось и изображение ссылка на изображение:
http://micex.ru/marketdata/analysis/...od=-1M&lang=ru
страница с рисунком: http://micex.ru/markets/stock/today
премного благодарен заранее...если это возможно в виде небольшого плагина на С++ например, готов отблагодарить...

Последний раз редактировалось Ilya9999; 26.05.2010 в 20:10.
Ilya9999 вне форума Ответить с цитированием
Старый 26.05.2010, 22:58   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
если это возможно в виде небольшого плагина на С++ например
С++ в данном случае не нужен.
В Excel есть макросы, которые легко скачают рисунок, и поместят его на лист в нужное место. (а потом ещё и обновлять будут)

Цитата:
т.е. на определённом листе при обновлении
Где файл с этим листом? Без примера файла не получится - если даже мы предложим вам готовое решение, вы просто не сможете потом адаптировать это решение под свой файл.

Что за обновление? Как и когда оно происходит?
Откуда берутся новые данные? (с терминала, с сайта, вручную вбиваются)
Как часто обновляется рисунок на сайте?

Нафига вообще скачивать этот рисунок?
Если на листе Excel есть все необходимые данные, проще построить диаграмму, выглядящую в точности так же, как и на рисунке с сайта.
Тогда и обновлять ничего не надо - диаграмма сама обновится.
EducatedFool вне форума Ответить с цитированием
Старый 26.05.2010, 23:01   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Попробуйте так (это код на VBA):
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Pictures.Insert( _
        "http://micex.ru/marketdata/analysis/chart_preview?secid=MICEXINDEXCF&boardid=SNDX&market=index&trade_engine=stock&template=micexpreview&timeline=2010.05.25%2000%3A00%3A00-2010.05.26%2023%3A59%3A59&interval=10&period=-1d&ltime=1274900100000&lang=ru" _
        ).Select
ActiveSheet.Pictures.Insert( _
        "http://upload.wikimedia.org/wikipedia/ru/thumb/d/d2/Winnie-the-Pooh-1.jpg/200px-Winnie-the-Pooh-1.jpg" _
        ).Select
        
        
End Sub
motorway вне форума Ответить с цитированием
Старый 27.05.2010, 13:46   #4
Ilya9999
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 7
По умолчанию

Прошу прощения, что не всё указал. Изображение находится на сайте и данных по нему там в открытом виде не имеется, обновляется оно примерно 3 раза в день, вследствие чего немного видоизменяется и ссылка на него. Данных на рабочем листе в Экселе не имеется, график нужен для аналитического сравнения.
Спасибо за предложенный вариант, мне кажется он подходит...немного поизменял ссылку на изображение, точнее параметры запроса, получается, что можно её немного сократить и не особо мучаться с параметром TIMELINE, то бишь датой, т.к. при вводе туда например конца настоящего года, с сайта выгружается график на последнюю имеющуюся дату,что есть само по себе хорошо...)) но хотелось бы конечно привязать это к настоящему времени, т.е. чтобы в запросе менялась даты, дабы в конце года не менять внутренности макроса...

видоизменённая ссылка: http://micex.ru/marketdata/analysis/...od=-1M&lang=ru

подрезал дату и время

можно ли в этом коде
Код:
tiveSheet.Pictures.Insert( _
        "http://micex.ru/marketdata/analysis/chart_preview?secid=MICEXMBITR&boardid=SNDX&market=index&trade_engine=stock&template=micexpreview&timeline=2010.04.14-2010.05.27&interval=24&period=-1M&lang=ru" _
        ).Select
заменить дату и период на переменные, которые будет вводить пользователь для получения графика...?

Последний раз редактировалось Ilya9999; 27.05.2010 в 17:45.
Ilya9999 вне форума Ответить с цитированием
Старый 27.05.2010, 18:13   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Если в ячейку A1 на листе вставлять диапазон в виде 2010.03.14-2010.06.25, а код сделать таким
Код:
ActiveSheet.Pictures.Insert( _
        "http://micex.ru/marketdata/analysis/chart_preview?secid=MICEXINDEXCF&boardid=SNDX&market=index&trade_engine=stock&template=micexpreview&timeline=" & Range("A1").Value & "&interval=24&period=-1M&lang=ru" _
        ).Select
,
то должно работать. Правда, после выбора дат из февраля, например, я не заметил, чтобы график до туда растягивался. Но это уже зависит от сайта. Либо там надо как-то вводить по-другому даты
motorway вне форума Ответить с цитированием
Старый 27.05.2010, 20:27   #6
Ilya9999
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 7
По умолчанию

Я обратил внимание, что первую дату можно не трогать...можно изменить период "отскока назад" начальной точки графика...параметр period, стоит -1М т.е. на один месяц...также можно открутить на 2, 3 месяца, но к сожалению не больше...видимо данные хранятся за последние 3 месяца...сейчас попробую изменить конечную дату по вашему примеру.

Последний раз редактировалось Ilya9999; 27.05.2010 в 20:30.
Ilya9999 вне форума Ответить с цитированием
Старый 27.05.2010, 20:34   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Да, у меня тоже получилось только на 3. А на 2, кстати, нет.
Если хотите менять именно период, то можете писать его тоже в ячейке, а тогда код будет такой:
Код:
ActiveSheet.Pictures.Insert( _
        "http://micex.ru/marketdata/analysis/chart_preview?secid=MICEXINDEXCF&boardid=SNDX&market=index&trade_engine=stock&template=micexpreview&interval=24&period=" & Range("A1").Value & "&lang=ru" _
        ).Select
Естественно, здесь можно добавить timeline, я его просто убрал сейчас
motorway вне форума Ответить с цитированием
Старый 27.05.2010, 21:15   #8
Ilya9999
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 7
По умолчанию

да, про период уже тоже посмотрел...)

пытаюсь сделать замену только одной даты...
Код:
ActiveSheet.Pictures.Insert( _
        "http://micex.ru/marketdata/analysis/chart_preview?secid=MICEXINDEXCF&boardid=SNDX&market=index&trade_engine=stock&template=micexpreview&timeline=2010.04.14-" & Range("G4").Value & "&interval=24&period=-3M&lang=ru" _
        ).Select
получается если только вводить дату в формате как в запросе,только с кавычкой в начале,чтобы Эксель воспринимал в нужном виде... т.е. так:" '2010.05.26 "
Ilya9999 вне форума Ответить с цитированием
Старый 27.05.2010, 21:27   #9
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Можете вводить и в обычном виде, а затем просто парсить свойство Value. Например, получать с помощью Split части между точками и их переставлять и вставлять в запрос
Пример:
Код:
x = Range("G14").Value
y = Split(x, ".")
Range("A2").Value = y(2) & "." & y(1) & "." & y(0)
MsgBox Range("A2").Value

Последний раз редактировалось motorway; 27.05.2010 в 21:29.
motorway вне форума Ответить с цитированием
Старый 27.05.2010, 21:52   #10
Ilya9999
Новичок
Джуниор
 
Регистрация: 26.05.2010
Сообщений: 7
По умолчанию

вот это круто )) спасибо большое...аж приятно тыкать стало...
Ilya9999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение рисунка S_P_E_K_T_O_R Общие вопросы C/C++ 2 04.05.2010 10:16
Смещение рисунка skrudjmagdak Общие вопросы Delphi 5 27.03.2010 15:23
печать рисунка kuzmich Общие вопросы Delphi 2 23.11.2009 14:09
Загрузка рисунка из мемо!!! Vito89 Общие вопросы Delphi 5 10.06.2009 13:48
Разгупировка рисунка asale Microsoft Office Excel 1 23.10.2007 22:30