1 - кодом перебираете все элементы на старнице и вычисляете Id нужного элемента, предварительно в фому что то в пишите
Dim x As Long On Error Resume Next For x = 0 To 5000 Debug.Print webbr.Document.All.Item(x).value & "-" & x Next x On Error GoTo 0 2 -можно поробовать помотреть код страницы (в браузере в обычном) и определить имя интересующего элемента
{quote}{login=egonomist}{date=20.02.2012 09:23}{thema=}{post}Тем более если речь идет о курсах цб - на сайте уже реализована возможность получения курсов используя xml. http://www.cbr.ru/scripts/Root.asp?Prtid=SXML {/post}{/quote}Здравствуйте. Не в коем разе не предлагаю использовать для ЦБ РФ этот макрос. на его примере просто разобрался, как этом ожно сделать. Далеко не на всех сайтах можно получить доступ на нужную страницу путем формирования URL или XML парсингом. Просто удобный пример, который достаточно просто можно адаптировать под свои нужды. Я когда первый раз c webbrowser столкнулся долго гуглил как информацию со страницы получить или как форму заполниить. Возможно кто то съэкономит пару часов работы.
{quote}{login=Allyonna}{date=01.06.2011 12:35}{thema=Re: импорт курс евро из сайте НБУ}{post}Добрый день! Может у кого-то появилось решение, как автоматически импортировать курс евро из сайта НБУ? http://www.bank.gov.ua/kurs/last_kurs1.htm{/post}{/quote} Так?
Такой поробуйте включает фильтр по значению в активной ячейке:
Sub ValueFilter()
Dim rngFilterRng As Range Dim lngFilter As Long Dim X As Long Dim lng As Double Dim val As Variant If TypeName(Selection) = "Range" Then ' Если форматирование столбца неоднородно, то приводит все к формату ячейки If IsNull(ActiveSheet.Columns(ActiveCell.Column).NumberFormat) Then ActiveSheet.Columns(ActiveCell.Column).NumberFormat = ActiveCell.NumberFormat MsgBox ("Формат столбца приведен к формату активной ячейки!") End If
' Включаем автофильтр если не активен If ActiveSheet.AutoFilterMode = False Then
ActiveSheet.Range(ActiveCell.Address).AutoFilter
End If
' Если фильтр уже активен
' Поиск соответствия поля и активной ячейки Set rngFilterRng = ActiveSheet.AutoFilter.Range
For X = 1 To ActiveSheet.AutoFilter.Filters.Count
If ActiveCell.Column = ActiveSheet.AutoFilter.Range(X).Column Then
' Если фильтр включен If ActiveSheet.AutoFilter.Filters(X).On Then
' Если соответствует значению в активной ячейки то фильтр выключить If ActiveSheet.AutoFilter.Filters(X).Criteria1 = "=" & ActiveCell.Text Or _ Replace(ActiveSheet.AutoFilter.Filters(X).Criteria1, ".", ",", 1, -1, vbTextCompare) = "=" & ActiveCell.Text Then ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X End If
Else:
If ActiveCell.Text Like "[#]*" Then
' Фильтр на ошибки Select Case ActiveCell.Text
Case "#ДЕЛ/0!" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#DIV/0!" Exit Sub Case "#Н/Д" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#N/A" Exit Sub Case "#ИМЯ?" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#Name?" Exit Sub Case "#Имя!" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#NULL!" Exit Sub Case "#ЧИСЛО!" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#NUM!" Exit Sub Case "#ССЫЛКА!" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#REF!" Exit Sub Case "#ЗНАЧ!" ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:="#VALUE!" Exit Sub
End Select End If
If IsNumeric(ActiveCell) Then ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:=Replace(ActiveCell.Text, ",", ".", 1, -1, vbTextCompare) If Not IsNumeric(ActiveCell) Then ActiveSheet.Range(rngFilterRng.Address).AutoFilter field:=X, Criteria1:=ActiveCell.Text
{quote}{login=Михаил}{date=16.03.2010 09:15}{thema=}{post}Вот с датой. Я так понял, что "перместить выделенные в архив" - решен?{/post}{/quote}
"перместить выделенные в архив" - решен, но не до конца... я нашел пример как это можно реализовать (см. файл). Но еще до конца не разобрался. Буду благодарен если поможете реализовать эту функцию.
{quote}{login=Михаил}{date=16.03.2010 09:13}{thema=}{post}А чем мешает строка3? в принципе можно, но с ней проще.{/post}{/quote}
Дело в том, что я предполагал делать выгрузку завершенных проектов, помеченных галочкой в другую таблицу. Если пометить галочкой заголовки... то их тоже можно будет перенести в таблицу. А этого бы не хотелось.
{quote}{login=Konstantin}{date=16.03.2010 08:26}{thema=Re: }{post}{quote}{login=Михаил}{date=16.03.2010 08:14}{thema=}{post}Пока примерно так{/post}{/quote}
а можно как-то сделать, чтобы не захватывалась строка 3...?{/post}{/quote}
Вопрос с не захватом 3 строки решил сам добавил простой if.
Думаю, что остался 1 вопрос:
Используя скрипт Автоматическое добавление текущей даты в ячейку (http://www.planetaexcel.ru/tip.php?aid=28) столкнулся с ситуацией, что если переделать скрипт на изменение диапазона ячеек, то дата изменения вставляется относительно измененной ячейке. В моем примере, программа корректно работает только если изменять столбец А. Подскажите как перейти от относительного столбца к абсолютному?
{quote}{login=Михаил}{date=16.03.2010 07:26}{thema=}{post}************ 1. Файл в общем доступе. Он как "shared file". А разве там с этим глюк может быть? блин действительно глюк... а как быть? *************************** Преобразовывать в динамические диапазоны...{/post}{/quote}
Михаил, а Вы можете на том же примере показать. Я вроде пробовал, но они у меня как-то растягиваются не так ((
{quote}{login=Konstantin}{date=16.03.2010 07:11}{thema=Re: }{post}{quote}{login=Михаил}{date=16.03.2010 07:07}{thema=}{post}А файл не в общем доступе? Ибо с таблицей ему общий доступ закрыт... Нумерация сверху вниз по порядку (т.е. бал первым, строку добавили - стал вторым)? Где должны быть даты при изменениях менеджера и исполнителя?{/post}{/quote}
1. Файл в общем доступе. Он как "shared file". А разве там с этим глюк может быть? 2. При любом изменении значений в столбцах с B по J дата выводится в столбец K (последние изменения).{/post}{/quote}
{quote}{login=Михаил}{date=16.03.2010 07:07}{thema=}{post}А файл не в общем доступе? Ибо с таблицей ему общий доступ закрыт... Нумерация сверху вниз по порядку (т.е. бал первым, строку добавили - стал вторым)? Где должны быть даты при изменениях менеджера и исполнителя?{/post}{/quote}
1. Файл в общем доступе. Он как "shared file". А разве там с этим глюк может быть? 2. При любом изменении значений в столбцах с B по J дата выводится в столбец K (последние изменения).
{quote}{login=Михаил}{date=16.03.2010 06:43}{thema=}{post}Если устроит такой добавление строки, то можно будет подумать и о других вопросах{/post}{/quote
охохо... да еше как устроит....
Кстати для нумерации (чтобы она всегда шла попорядку) я использовал вот эту формулу. А как сделать, чтобы диапазон ячеек не выделялся после добавления? ))
{quote}{login=Konstantin}{date=16.03.2010 06:28}{thema=Re: Re: Re: }{post}Попытался сделать тоже самое с динамическим диапазоном, как описано вот здесь http://www.planetaexcel.ru/tip.php?aid=93... но ничего не выходит. При добавление строчки сверху диапазон смещается!{/post}{/quote}
Попытался сделать тоже самое с динамическим диапазоном, как описано вот здесь http://www.planetaexcel.ru/tip.php?aid=93... но ничего не выходит. При добавление строчки сверху диапазон смещается!
некоторые вопросы ушли... а вот эти все еще актуальны... жду файл от Владимира, возможно вопросы уйдут ))
1. Используя скрипт Автоматическое добавление текущей даты в ячейку (http://www.planetaexcel.ru/tip.php?aid=28) столкнулся с ситуацией, что если переделать скрипт на изменение диапазона ячеек, то дата изменения вставляется относительно измененной ячейке. В моем примере, программа корректно работает только если изменять столбец А. Подскажите как перейти от относительного столбца к абсолютному?
3. Помогите пожалуйста реализовать функцию добавления нового проекта. Я пытался записать это через запись макроса но получается белиберда. Хотелось бы чтобы при нажатии на эту кнопку вставлялась новая строка в строчку 4, и имела такой же формат как и все предыдущие (включая условное форматирование столбцов H и J, а так же формулу из столбца G, и т.д.) А самое главное, чтобы при добавление нового проекта расширялся диапазон который есть в макросах.
4. Так же хотелось бы сделать возможным переносить выделенные галочкой проекты в архив на лист (completed).
{quote}{login=VovaK}{date=16.03.2010 02:58}{thema=}{post}Сами сможете доработать по готовому файлу? У меня есть похожая готовая работа. Сбросьте Ваш личный E-mail - файл тяжелый.{/post}{/quote}
Для удобства босс попросил сделать табличку в экселе, чтобы отслеживать проекты и их статус. Я накидал скелет, используя разные полезные советы и макросы из примеров.
Но по причине плохого владения ВБА, я столкнулся с непреодолимой проблемой, надеюсь вы мне поможете ))
1. Используя скрипт Автоматическое добавление текущей даты в ячейку (http://www.planetaexcel.ru/tip.php?aid=28) столкнулся с ситуацией, что если переделать скрипт на изменение диапазона ячеек, то дата изменения вставляется относительно измененной ячейке. В моем примере, программа корректно работает только если изменять столбец А. Подскажите как перейти от относительного столбца к абсолютному? 2. Относительно этого же скрипта… возможно ли добавить помимо регистрации времени последнего внесения данных, имя пользователя, вносившего последние изменения? И добавлять это все на отдельном листе… (что-то типа вести журнал). 3. Помогите пожалуйста реализовать функцию добавления нового проекта. Я пытался записать это через запись макроса но получается белиберда. Хотелось бы чтобы при нажатии на эту кнопку вставлялась новая строка в строчку 4, и имела такой же формат как и все предыдущие (включая условное форматирование столбцов H и J, а так же формулу из столбца G, и т.д.) А самое главное, чтобы при добавление нового проекта расширялся диапазон который есть в макросах. 4. Так же хотелось бы сделать возможным переносить выделенные галочкой проекты в архив на лист (completed).
Буду благодарен кто-чем поможет. В долгу не останусь ))
Есть две вкладки "Расчет" и "Данные". Во вкладке "данные" Находятся данные о названии компании, о выручке компании и о расходахкомпании. На странице "расчеты" хотелось бы получить список компаний и расчет их прибыльности, как показано в примере, но только для тех у кого прибыль больше или равна 0 (используя именно формулы подстановки, а не фиксированные значения).
Я кончено понимаю, что в данном примере легче использовать фильтр, но это всего-лишь маленький пример. В реальности придется обрабатывать по 300 тыс. строк из которых только 1000 может удовлетворять критериям. Для этой тысями в свою очередь будет расчитываться 200 показателей.