Récupération de données sur site web avec mot de passe
Bonjour à tous,
Je suis encore novice en VBA et je m'en sors difficilement avec tout ce que je lis sur le web. J'espère que vous pourrez m'aider.
Je souhaite récupérer des données sur une page web accessible par login + mot de passe puis par l'outil de recherche du site.
Je sais récupérer les infos si je me suis connecté au préalable. Pour cela j'utilise le code suivant :
Sub Importer()
Sheets.Add
ActiveSheet.Name = "TMP_IMPORT"
With Sheets("TMP_IMPORT").QueryTables.Add( _
Connection:="URL;http://www.xxx.com", _
Destination:=Sheets("TMP_IMPORT").Range("$A$1"))
.Name = "recherche.php?search=xxxxx"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
compteur = 0
For ligne = 1 To 1000
If Left(Sheets("TMP_IMPORT").Cells(ligne, 6), 14) = "Valeur estimée" Then
compteur = compteur + 1
Sheets("Feuille A").Cells(compteur, 1) = Sheets("TMP_IMPORT").Cells(ligne + 1, 6)
If compteur = 1 Then Exit For
End If
Next
Application.DisplayAlerts = False
Sheets("TMP_IMPORT").Delete
Application.DisplayAlerts = True
End SubMais si je veux exécuter la macro sans être connecté au préalable, je dois me connecter via une macro.
J'ai tenté ceci (j'ai juste caché le login et le mot de passe) :
Sub ConnexionAMonSite()
Const READYSTATE_COMPLETE = 4
Dim IE
Dim elementHtml As Object
Set IE = CreateObject("internetExplorer.Application") 'ouvre internet explorer
IE.Visible = True
With IE
.navigate "http://www.xxx.com/" 'va sur la page du site
Do Until .readyState = READYSTATE_COMPLETE 'on attend jusqu’à ce que la page soit chargée
DoEvents
Loop
End With
Set elementHtml = IE.document.getElementById("compte") 'on sélectionne une case du formulaire
elementHtml.Value = "mon login" 'on donne une valeur à cette case
Set elementHtml = IE.document.getElementById("password") 'on sélectionne une case du formulaire
elementHtml.Value = "mon mot de passe" 'on donne une valeur à cette case
Set ObjectIE = IE.document.getElementById("submit") 'on sélectionne un bouton
ObjectIE.Click 'on clique sur ce bouton
End SubJ'arrive ici sur une erreur d'exécution '13' Incompatibilité de type
Quel est le problème et comment le corriger ?
Merci d'avance pour votre aide
Edit : C'est bon, le code est corrigé. Merci quand même
Bonjour
que faut il ajouter entre les guillemets ou il y a ecrit compte password et submit. Je souhaite me connecter sur le site suivant https://auth.univ-lorraine.fr/login?service=https://ent.univ-lorraine.fr/Login. Faut il chercher dans le code source le nom de cette case ?
Merci d'avance de votre réponse je suis un peu perdu...