Именно с плохим уровнем в VBA я ищу ваш опыт по этой проблеме, безуспешно изучая различные предметы, похожие на мои. Действительно, я хочу загрузить файл .xlsx с веб-сайта (или системы управления документами). Ссылка на сайт выглядит следующим образом: https://www.mezzoteam.com/login.aspx с обязательной аутентификацией.
Следующий код используется для подключения к веб-сайту с параметрами подключения и для доступа к странице, где находится файл скачано содержится:
Sub GetTable_GED()
'Renseigner le lien de la page de connexion et la page du taleau à récupérer
Const cURL = "https://www.mezzoteam.com/login.aspx?ReturnUrl=%2flayout_documents.aspx"
Const cURL2 = "https://www.mezzoteam.com/window_document.aspx?&wsfromlink=22e58a2a-fa83-4462-9b30-1768498b67e6&id=ffc12ca9-1333-4b35-b5eb-7d3857f00b70"
Dim IE As InternetExplorer
Dim Doc As HTMLDocument
Dim LoginForm As HTMLFormElement
Dim objElement As Object
Dim objCollection As Object
'Créer une nouvelle fenetre dans le navigateur
Set IE = New InternetExplorer
'Activer le débogage de la page
IE.Visible = True
'Lancer la page
IE.navigate cURL
'Chargement initial de la page
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Set Doc = IE.document
'Identifier la structure de la page
Set LoginForm = Doc.forms(0)
'Remplir les paramètres de connexion de type username, password
'input name="ctl00$body$userName" id="ctl00_body_userName" class="form-control" placeholder="email@example.com" autocomplete="username" type="email"
'<input name="ctl00$body$password" type="password" id="ctl00_body_password" class="form-control" autocomplete="current-password">
With Doc
.getElementById("ctl00_body_userName").Value = "xxxxxxxx@xxxx.com"
.getElementById("ctl00_body_password").Value = "xxxxxxx"
'Executer en cliquant le bouton de connexion
'<input type="submit" name="ctl00$body$LoginButton" value="Se connecter" id="ctl00_body_LoginButton" class="btn btn-block btn-primary">
.getElementsByName("ctl00$body$LoginButton")(0).Click
End With
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
'Maintenant, allons dans la page où se trouve le tableau à récupérer
IE.navigate cURL2
Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
Set objElement = IE.document
With objElement
'<button id="ctl00_BodyPlaceHolder_actionsbar_download" type="button" value="download" class="btn btn-primary"><span id="ctl00_BodyPlaceHolder_actionsbar_download_label">Télécharger</span> </button>
.getElementById("ctl00_BodyPlaceHolder_actionsbar_download").Click **click buton to download file**
End With
End Sub
'' '
На данном этапе загрузка не запускается! У меня есть это сообщение об ошибке: «Ошибка выполнения 438: свойство или метод, не управляемый этим объектом» из кода .getElementById("ctl00_BodyPlaceHolder_actionsbar_download").Click
Моя потребность: загрузить этот файл .xlsx и открыть его в рабочей книге активного листа.
Я также прикрепляю на рисунках страницу, на которую нацелен файл, а также код HTML, выделяющий файл для загрузки.
HTML кодовая страница, где файл содержит
С уважением,