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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 119 След.
Апгрейд кода до excel 64bit. Доработки
 
Если исправить только проблему с 64-бит, - сделаю сразу за 600 руб

PS: Сделано, оплату получил
Изменено: Игорь - 03.12.2021 14:59:44
Запрос даты и времени из Интернета
 
Часовой пояс правильно укажите здесь:
Optional ByVal GMT& = 4
Для Москвы это будет 3
Запрос даты и времени из Интернета
 
Исправил функцию у себя на сайте
Теперь снова работает
Достаточно было обновить ссылку: URL$ = "https://yandex.ru/"
Создание группы макросов для книги excel2007 в соответствии с тз
 
Цитата
R Dmitry написал:
65 страниц текста
Я думал, это образное выражение, - ну не может же быть такого в задании на макрос
Всё же решил глянуть ТЗ... жесть, никогда еще столько текста в задании не видел
Особенно нравится нумерация: 3.2.3.2.8.4.1
Ни разу не встречал в документах 7-уровневой нумерации

Думаю, тут только за ознакомление с ТЗ надо брать минимум 20 тр (ведь это надо будет перечитывать, и обсуждать наверняка)
Сергей, вы хоть приблизительно бюджет свой озвучьте на всё это дело...
Может кто архив столото спарсить?
 
500-700 рублей - маловато будет (тем более, при отсутствии задания с примером результата)
а вот если нолик дорисовать к цене, невозможное станет возможным
Скопировать все ссылки с сайта VBA
 
Здравствуйте.
Прежде чем взять ссылки со страницы, надо чтобы эти ссылки на странице появились
Для этого требуется в цикле прокручивать страницу браузера вниз, до тех пор пока на ней добавляются данные.
В общем, немало кода нужно
(можно и без браузера, но там тоже непросто будет, из-за необходимости выполнять POST запросы с какими-то длинными параметрами)
Пользовательская форма прекращает работу Excel
 
А почему на скриншоте у вас форма без заголовка (если это форма), а в коде нет никакого WinApi для скрытия заголовка формы?
Вы выложили не весь код?
В коде куча ошибок (и ссылок на отсутствующие файлы), потому протестировать не получается.

Причин вылета Excel - две:
1) некорректно прописанный код для WinAPI (если вы манипулируете формой, скрывая заголовок или что-то типа того)
2) зацикливание кода (что более вероятно в вашем случае)
вы на время заполнения комбобоксов не отключаете сработку событий, - оттого и запускается непрерывный цикл: изменение поля - событие Change или KeyDown сработало - поле поменялось кодом - опять  событие Change или KeyDown сработало - и так далее
Получить html код элемента
 
здесь есть функция для извлечения тегов из HTML:
https://excelvba.ru/code/html
Ищу программиста-макросника на фриланс, поиск фрилансера на определенных условиях
 
О как цены быстро растут.. еще пару часов назад было 500 руб/час, а сейчас уже 700
А обсуждение задания входит в это время? (можно обсуждать задание 2 часа, а макрос написать за полчаса, - оплачиваться будут 0,5 часа или 2,5 часа?)

Какой объем работ / оплат ожидается в месяц?
Если вы планируете заказывать 5 простеньких макросов в месяц (по 10-15 строк) - не факт, что такое взаимодействие будет выгодно по деньгам (больше согласований и возни с оплатами)
Вот если вы закажете небольшой макрос, и я за полчаса напишу 15 строк кода, - сколько вы за это заплатите?
Изменено: Игорь - 01.10.2021 19:33:28
HTTP запрос из VBA, Альтернативные спосбы
 
Ну так вы другую ссылку прогружаете
Что мешало сразу эту ссылку написать, - я бы проверил
HTTP запрос из VBA, Альтернативные спосбы
 
Не получится эту ссылку прогрузить, без использования сторонних программ.
Средствами Windows эта страница не загрузится
(в том числе веб-запросом и браузером IE, в котором не поддерживаются необходимые для этого сайта протоколы шифрования)
Видимо, на сайте специально включили требование новых протоколов, чтобы работа с сервисом была возможна только из современных браузеров.
HTTP запрос из VBA, Альтернативные спосбы
 
Vilebone, неужто сложно выложить код своего макроса здесь?
Чтобы помогающие исправили 1-2 строки, а не писали макрос с нуля?
Вы даже не сказали, по какой ссылке надо подгружать данные..
Прайсы, Наценка на прайсы
 
Я не возьмусь (хотя бы потому что нет задания, что откуда извлекать, и в каком виде куда выводить)
Но вы выложите все файлы, которые надо обработать, и пример результата, - может кто и возьмётся тогда оценить работу
Прайсы, Наценка на прайсы
 
В вашей сфере (мебель) прайсы такие, что никаких денег не хватит на автоматизацию обработки прайсов.
У меня есть готовое решение для прайсов формата Excel, где можно настроить сложную наценку, стоит 3200 руб.
И будь у вас «нормальные» прайсы (какие почти во всех сферах деятельности, кроме мебели и металлопроката), и только прайсы формата Excel, вы бы сами смогли всё настроить.
Но, прайсы на мебель ужасны по структуре, там настройка под каждого поставщика будет стоить около 1500-2000 руб (если прайс в Excel), а для прайсов Word / ПДФ - еще дороже (ибо там что ни строка, то что-то новое). Т.е. перед тем, как выполнить наценку (что несложно), надо привести прайсы в нормальный вид, а это очень сложно и дорого.
Т.е. даже с бюджетом в 10 раз больше (50 т.р.) тут особо ничего не сделаешь (если там больше 10-15 поставщиков)
Парсинг сайта, получение данных с сайта
 
Да никто не перехватывал заказ
Изначально он мне был отправлен, но я не сразу ответил на письмо.
А в предыдущем письме (с другим заказом) я отправил заказчика в этот раздел форума, - а он решил, что и с этим заказом тоже на форум надо обратиться (хотя надо было просто дождаться ответа на письмо, ибо парсеры своим клиентам я всегда настраиваю, а вот макросы под заказ почти не беру в работу)
Автоподхват excel vba вложений с неизвестным окончанием
 
Функция =DIR("маска имени файла со звездочкой")
вернёт вам название файла

примерно так я бы попробовал:

Код
sAttachment=""
mask$ = "\\ip\TNS_Loyalty\GOODSANDGROUPS_Import_AddOrUpdate_" & Sheets("Лист1").Range("A1") & "*.xml"
filename$ = dir(mask$)
if len(filename$) then sAttachment = "\\ip\TNS_Loyalty\" & filename$
power bi парсить сайт с рекламой
 
Для контроля трафика есть спец. программы. Например, Fiddler
Покажет все исходящие запросы и ответы на них.
Пользовательский вариант склонения ФИО в родительный и дательный
 
Судя по кодовому имени проекта VBA, вы просто взяли этот мой файл за основу, и слегка переделали вызов функции, а теперь выкладываете как своё.

Добавлено позже
Хотя нет, код заметно доработан. Так что претензий нет.
Изменено: Игорь - 22.04.2021 17:26:46
Макрос для парсинга цен по списку ссылок
 
Выполнимо всё, если денег много
Вы бы свой ориентировочный бюджет на всё это дело озвучили, - тогда может и предложения бы поступили
По другим сайтам я бы сразу озвучил стоимость, а за эти 2 сайта браться не хочется (ибо не смогу гарантировать работу на большом количестве ссылок, и не хочется в дальнейшем сталкиваться с постоянными просьбами решить очередную проблему с обходом блокировки сайта)
Макрос для парсинга цен по списку ссылок
 
Так там можно настроить все и без кодов этих (применив другой способ получения данных со страницы)
Проблема в другом, - собственно, загрузить код страницы.
Для сайта market.yandex.ru страницы у вас перестанут грузиться после 2-3 запросов, а для сайта ozon - после 10-150 запросов.
То есть вся сложность именно в обходе блокировок сайта.
А с загруженной страницы данные взять всегда можно, неважно каким способом (просто вы предложили наименее универсальный способ)
Изменено: Игорь - 21.03.2021 00:22:23
Макрос для парсинга цен по списку ссылок
 
Здравствуйте.
Вообще, я последние годы только таким и занимаюсь (настройка мониторинга цен), но тут откажусь, из-за проблемных сайтов ozon и market.yandex.ru
Если с озоном ещё не так всё плохо (хотя в феврале 2021 озон начал блокировать парсеры, так как начал сам продавать отчеты по товарам), то с market.yandex.ru всё сложнее, ибо их защиту обойти непросто (нужны прокси-серверы, и/или автоматическое решение капчи)
Wildberries до февраля 2021 был беспроблемным, но сейчас там частично отключено API (для новых товаров с ID>20.000.000), так что там тоже свои заморочки.
Таким образом, вы отобрали 3 самых проблемных российских сайта (с остальными 99% сайтов вообще никаких проблем нет), поэтому выгоднее отказаться, чем делать это за небольшие деньги.

PS: то, что вы написали на листе Площадки Коды страниц, это всё не нужно.
К этим названием классов для сайтов ozon и market.yandex.ru привязываться нельзя (они постоянно меняются, — будете раз в неделю перенастраивать парсер). Там всё сложнее намного надо настраивать.
Удалить или закрыть незакрытые HTML теги
 
Не ответил я, потому что готового макроса у меня нет, и ваш html уж слишком повреждён.
Вы откуда такой кривой html берёте? Уж не вырезаете ли кусок строки заданной длины из корректного html?

Совет: открываете этот html в браузере (IE) или другом контейнере типа CreateObject ("htmlfile")
и потом считываете содержимое. Теги откорректируются автоматически.
Excel не грузит xlsx-файл из интернета. И сам вылетает. Причина ?
 
Какие-то проблемы с вашим Excel (скорее всего причина в нём, раз он вылетает)
У меня по вашей ссылке файл загружается и открывается.
Как нажать кнопку(control As IRibbonControl) из надстройки?
 
Замените
Код
Sub myButton(control As IRibbonControl)

на
Код
Sub myButton(OPTIONAL control As IRibbonControl)


тогда макрос myButton можно будет вызывать без параметра
Работа с InternetExplorer: получение выписки ЕГРН после заполнения поля на сайте, Запуск (отработка) событий на сайте
 
Значит, какое-то другое событие нужно генерировать (а не одно из трех, которые я прописал),
или для другого элемента страницы (родительского элемента поля, например)
Мой способ проверен на множестве сайтов, - если правильный объект передать (EL As Object) в функцию, и задать нужное событие, то скрипт обработает это событие.

ну и Dim IE As InternetExplorer должен быть объявлен ВНЕ вашего макроса,
иначе моя функция просто не видит, что это за объект IE, к которому идет обращение
Работа с InternetExplorer: получение выписки ЕГРН после заполнения поля на сайте, Запуск (отработка) событий на сайте
 
Добавьте в конец кода функцию
Код
Sub IE_RaiseEvents(ByRef EL As Object, ByVal events$)
    On Error Resume Next
    Dim eventObj As Object, event_name
    events$ = Replace(events$, ";", ",")
    
    For Each event_name In Split(events$, ",")
        EL.raiseEvent "on" & event_name        ' for IE8
        
        Set eventObj = IE.document.createEvent("HTMLEvents")
        eventObj.initEvent event_name, True, False        ' for IE9 or newer
        EL.dispatchEvent eventObj
    Next
    Set eventObj = Nothing
End Sub


а в ваш макрос, после строки ColElements(4).Click
строки
Код
IE_RaiseEvents ColElements(4), "click,keydown,change" 
Получение куков из уже залогиненного в Хроме сайта
 
Через Chrome - никак, или очень сложно
Если же использовать IE, то оттуда легко взять куки как с открытой страницы (1 строка кода), так и из файлов cookie (20 строк кода)
В большинстве случаев достаточно взять cookie из документа:
Цитата
res = IE.document.Cookie

Из файлов Cookie взять данные посложнее, примерно так:
Код
Function GetIECookiesFromFiles(ByVal domain$, Optional Apply As Boolean, Optional ExcludeUseless As Boolean) As String
    On Error Resume Next
    Dim sCookiesPath$, oCookies As Object, oFSO As Object, oFolder As Object, oFile
    Dim sContent As String, a() As String, i As Long, aItems, aCookies()
    
    ' read IE cookie files
    sCookiesPath = CreateObject("shell.application").Namespace("shell:Cookies").self.path
    Set oCookies = CreateObject("Scripting.Dictionary")
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sCookiesPath)
    For Each oFile In oFolder.files
        If LCase(oFSO.GetExtensionName(oFile.Name)) = "txt" Then
            With oFile.OpenAsTextStream(1, 0) ' read-only, ascii
                sContent = .ReadAll
                .Close
            End With
            sContent = Replace(sContent, vbCr, "")
            ' split cookies within file
            a = Split(sContent, vbLf & "*" & vbLf)
            For i = 0 To UBound(a) - 1
                If InStr(1, a(i), domain$, vbTextCompare) > 0 Then oCookies.Add oCookies.Count, a(i)
            Next
        End If
    Next
    
    ' parse data, repack to 2d array
    aItems = oCookies.Items()
    If UBound(aItems) = -1 Then Exit Function
    
    If CookiesStore Is Nothing Then Set CookiesStore = New Dictionary        ' глобальный словарь с cookies
    ReDim aCookies(1 To UBound(aItems) + 1, 1 To 6)
    Dim param_name$, param_value$, NewCookiesList$
    
    For i = 1 To UBound(aItems) + 1
        a = Split(aItems(i - 1), vbLf)
        aCookies(i, 1) = a(0)
        aCookies(i, 2) = a(1)
        aCookies(i, 3) = a(2)
        'aCookies(i, 4) = GetInetCookieFlags(a(3))
        'aCookies(i, 5) = ConvDT(a(4), a(5))
        'aCookies(i, 6) = ConvDT(a(6), a(7))
        
        
        param_name$ = "": param_value$ = ""
        param_name$ = a(0)
        param_value$ = a(1)
        
       ' If ExcludeUseless Then param_name$ = ExcludeUselessCookie(param_name$)        
        
        If Len(param_name$) Then
            NewCookiesList$ = NewCookiesList$ & IIf(NewCookiesList$ = "", "", vbLf) & param_name$
            GetIECookiesFromFiles = GetIECookiesFromFiles & IIf(GetIECookiesFromFiles = "", "", "; ") & param_name$ & "=" & param_value$
            
            If Apply Then CookiesStore.item(param_name$) = param_value$
           Debug.Print  "Set cookie from IE cookie file" & param_name$ & " = " & param_value$
        End If
    Next   
End Function
Создать макрос Excel для парсинга данных с сайта, нужно использую ссылку в ячейке документа заполнять столбец в таблице строкой, с информацией которая есть на сайте.
 
Цитата
Нужно обязательно снабдить код комментариями
Уверены, что разобраться сможете потом в этом коде?
Получение токенов, BASIC авторизация, поддержка Cookies, всякие непростые POST запросы
Там без комментов к коду это всё бы заработало..

Цитата
использовать только стандартные функции и методы
а как определить, та или иная функция стандартная или нестандартная?

Бюджет бы свой озвучили сразу, - это ускорило бы поиск исполнителя
VBA скачать файл с сайта
 
Проблема с формированием ссылки на скачивание файла
У вас в ссылке пробелы, их там быть не должно
Нужно перекодировать строку (перед дописыванием к ссылке) в URLEncode:
https://excelvba.ru/code/URLEncode

Цитата
Oleg Boyaroff написал:
после авторизации там еще используются куки
В данном варианте кода это, скорее всего, не критично
Компонент MSXML2.XMLHTTP, который используется к коде (в отличие от WinHTTPRequest) использует стек WinINET (общий с браузером IE), потому сохранение всех этих Cookies выполняется автоматически
(можно вообще не настраивать авторизацию в макросе, а один раз вручную авторизоваться в браузере IE, и макрос будет работать с сайтом уже авторизованный)

Цитата
Joker097 написал:
респонсТекст пустой если что..
в данном случае (бинарный ответ) нужно использовать .responseBody (перекодируя через ADODB.Stream)
Пример кода:
Код
СодержимоеФайла= GetHTTPResponse (URL$, "utf-8") 

Код
Function GetHTTPResponse(ByVal URL$, Optional ByVal Encoding$) As String
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", URL$, False
        .Send
        If Len(Encoding$) Then
            With CreateObject("ADODB.Stream")
                filename$ = Environ("tmp") & "\response.txt"
                .Charset = Encoding$: .Type = 1        ' adTypeBinary:
                .Open: .Write oXMLHTTP.ResponseBody
                .SaveToFile filename$, 2
                .Type = 2        'adTypeText
                .LoadFromFile filename$
                GetHTTPResponse = .ReadText
                .Close
            End With
        Else
            GetHTTPResponse = .ResponseText
        End If
    End With
    Set oXMLHTTP = Nothing
End Function
Изменено: Игорь - 08.02.2021 14:15:53
VBA скачать файл с сайта
 
В предыдущей теме я вам ответил
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=136857
или вы не читаете ответы в своих темах?
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 119 След.
Наверх