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 Sub

Mais 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 Sub

J'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...

Rechercher des sujets similaires à "recuperation donnees site web mot passe"