Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Открыть выпадающий список в Internet Explorer через VBA, как заполнять форму на сайтах средствами VBA
 
Doober, большое человеческое спасибо!
Круть!!!! :) Я даже не подозревал, что VBA на такое способен.

Этот чудо метод получает массив данных? через MSXML2.XMLHTTP?  
Открыть выпадающий список в Internet Explorer через VBA, как заполнять форму на сайтах средствами VBA
 
Doober, благодарю за практически готовое решение.

Строку запроса переписал в более понятный для себя вид и
для себя определил дальнейшие шаги:

  1. задать нужные значения переменных с листа Excel:
http://export.finam.ru/GAZP_151116_151116.txt?
market=2   - надо понять возможные варианты значений
&em=16842 - финамовский код для эмитента
&code=GAZP - тикер
&apply=0 - не понял на что влияет
&df=16 - день
&mf=10 - не вполне очевидно, почему ноябрь у них 10 месяц
&yf=2015 - год
&from=16.11.2015
&dt=16
&mt=10
&yt=2015
&to=16.11.2015
&p=1 - выбор периода с которым я мучился
&f=GAZP_151116_151116 - имя выходного файла
&e=.txt - формат выходного файла либо .csv
&cn=GAZP - имя контракта
&dtf=1      - формат даты
&tmf=1      - формат времени
&MSOR=1 - Выдавать время либо начала (1), либо окончания свечи (0)
&mstime=on - московское время да\нет
&mstimever=1 - не понял что это
&sep=1      - Разделитель полей
&sep2=1    - Разделитель разрядов
&datf=6     - Формат записи в файл
&at=1       - Добавить заголовок файла


2. Потом этот длинный код надо поставить вместо трех иксов в VBA
Код
 ie.Navigate ("ХХХ")
3. запустить цикл

Единственный вопрос, который остался нерешенным:
Как мне указать Internet Explorer'у куда сохранять файлы?


Вот тут описывается решение такой же задачи но через Python в январе 2010 года.
http://toly-blog.ru/trade/modul-quotes-zagruzhaem-kotirovki/  
Открыть выпадающий список в Internet Explorer через VBA, как заполнять форму на сайтах средствами VBA
 
Код
Public Sub Fromfinam()
Dim i As Integer
Dim ie As Object

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate ("http://www.finam.ru/profile/moex-akcii/gazprom/export")

While CBool(ie.Busy)
    i = i + 1
    If i > 29999 Then
       Beep
       MsgBox "Ошибка. Finam.ru не доступен, vbCritical, "Finam.Ru"
       ie.Quit
       Set ie = Nothing
       Exit Sub
    End If
    DoEvents
Wend

ie.document.Forms.exportdata.from.Value = "19.11.2015" 'интервал, начальная дата
ie.document.Forms.exportdata.to.Value = "19.11.2016" 'интервал, конечная дата
ie.document.Forms.exportdata.f.Value = "Test_download" 'название выгрузки
ie.document.Forms.exportdata.p.Value = 1 'ТУТ ВЫПАДАЮЩИЙ СПИСОК. не могу указать значение
Set ie = Nothing
End Sub

Выше пример кода, который должен собирать информацию об акциях с вебсайта.
У меня получилось заполнить несколько полей формы. Проблема возникла с раскрывающимся списком периода времени (по умолчанию 1 час)
ссылка на сайт: http://www.finam.ru/profile/moex-akcii/gazprom/export

К объекту обращаюсь через параметры: name = p, но просто присвоить Value = 1 не дает результата
Вот параметры объекта:
<div class="finam-ui-controls-select" style="width: 135px;"><div class="finam-ui-controls-select-title" style="width: 112px;">1 час</div><div class="finam-ui-controls-select-arrow"></div></div><select id="issuer-profile-export-period" name="p" style="width: 135px; display: none;" class="i-form-state-item">
<option value="1">тики</option>
<option value="2">1 мин.</option>
<option value="3">5 мин.</option>
<option value="4">10 мин.</option>
<option value="5">15 мин.</option>
<option value="6">30 мин.</option>
<option value="7" selected="selected">1 час</option>
<option value="8">1 день</option>
<option value="9">1 неделя</option>
<option value="10">1 месяц</option>
</select>
[/td]
Может кроме value надо еще selected="selected" указать?

Заранее благодарен!
Суммирование строк по условию макросом (без СУММЕСЛИ)
 
Приветствую!

Задача такая:
в приложенном файле есть номера отделов, в каждом   отделе трудится несколько должностей (работник, директор и т.д.). Нужно  сложить значения в столбцах показателей  для конкретных должностей (директор и секретарь) и вписать полученные суммы в строку с названием отдела.
То как должно быть в итоге изображено в приложенном файле.

Можно решить такую задачку посчитать через суммесли, но хотелось бы макросом. Оригинальные файлы с которыми приходится работать содержат по весят по 50 мегабайт. Лучше это делать через SQL, но я в нем пока не силен.
Получение ссылок на файлы с Dropbox, с помощью макроса
 
Укажите, пожалуйста, точный адрес Microsoft XML.  Попробую выбрать его через Browse
Получение ссылок на файлы с Dropbox, с помощью макроса
 
Цитата
JayBhagavan написал: Tools -- References.
Все верно. Только у меня не получилось найти там XML
Получение ссылок на файлы с Dropbox, с помощью макроса
 
На англоязычном сайте нашел такой код. Написано, что должен решить поставленную задачу. Как подключить MICROSOFT XML V2.6?
Код
'THIS REQUIRES A REFERENCE TO MICROSOFT XML, V2.6 OR HIGHER
'In VBA, go to Tools, References, then select the Microsoft XML from the list

'store the folder as a variable so you don't have to recheck it each time
Public strDropBoxFolder As String

'This locates and returns the full path of the DropBox folder
Public Function DropBoxFolder() As String

Dim DBhost As String
Dim strInput As String
Dim DBPath As String
On Error GoTo Error_Handler

'If the folder has already been found, don't recheck it, just use the stored variable
If strDropBoxFolder <> "" Then
DropBoxFolder = strDropBoxFolder
Exit Function
End If
'otherwise, go find it.
' find the host.db file
DBhost = CStr(Environ("USERPROFILE") & "\AppData\Roaming\Dropbox\host.db")

If Dir(DBhost) <> "" Then
Open DBhost For Input Access Read As #1
'read the host.db file
Line Input #1, strInput
Close #1
'decode from Base64
strInput = StrConv(DecodeBase64(strInput), vbUnicode)
'ignore the first line and extract the file path by looking drive name such as C:\
DBPath = Mid(strInput, InStr(strInput, ":\") - 1)
'return the result
DropBoxFolder = DBPath
'store the result for future use
strDropBoxFolder = DBPath
Else
'file not found and error are handled the same way
Error_Handler:
On Error Resume Next

strDropBoxFolder = ""
End If

End Function


Private Function DecodeBase64(ByVal strData As String) As Byte()

Dim objXML As MSXML2.DOMDocument
Dim objNode As MSXML2.IXMLDOMElement

' help from MSXML
Set objXML = New MSXML2.DOMDocument
Set objNode = objXML.createElement("b64")
objNode.DataType = "bin.base64"
objNode.Text = strData
DecodeBase64 = objNode.nodeTypedValue

' thanks, bye
Set objNode = Nothing
Set objXML = Nothing

End Function
Получение ссылок на файлы с Dropbox, с помощью макроса
 
Спасибо за совет
А если действовать иначе. Есть такой макрос:
Код
Sub Копировать_из_буфера()
    txt = ClipboardText
    MsgBox txt, "Что сюда добавить, чтобы значение вставлялось в ячейку на листе??"
End Sub
 
Function ClipboardText() 
   With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        ClipboardText = .GetText
    End With
End Function
А как активировать данный макрос при обновлении буфера обмена?
Получение ссылок на файлы с Dropbox, с помощью макроса
 
Приветствую!

Есть такая задачка. Иногда приходится загружать на dropbox по 50 и более файлов jpg и вручную прописывать ссылки на них на листах в Excel.

Процесс такой: Чтобы поделиться изображениями с другими пользователями Сети нужно залить файлы на dropbox, поочередно нажать на каждый файл правой кнопкой, выскочит контекстное меню, потом выбрать "Поделиться ссылкой". В результате ссылка на файл будет скопирована в буфер обмена. Данные из буфера обмена я вставляю на лист Excel рядом с названием файла .jpg. Смотрите приложенный файл.

Основная проблема - это как макросом жать правой кнопкой на файл и получать ссылку с него?
Страницы: 1
Наверх