MACRO connexion site internet

Bonjour,

J'essaye de me connecter à un site internet par macro dans le but de télécharger des .csv.

Pour l'instant, j'arrive à me connecter par la page avec un ID et un MPD, cliquer sur valider, changer de page, rentrer une information dans un rectangle (pour filtre par mot clé) et ensuite je dois cliquer pour valider mais je n'y arrive pas.

Voici mon code pour le moment :

Sub Connexion()
     Const READYSTATE_COMPLETE = 4
     Dim IE
     Dim elementHtml As Object

     Set IE = CreateObject("internetExplorer.Application")
     IE.Visible = True
     With IE
         .navigate "https://siteweb"
            Do While .ReadyState <> READYSTATE_COMPLETE
            Loop 'attend la fin du chargement
             DoEvents
     End With

     Dim bOk As Boolean

     Set elementHtml = IE.Document.getElementById("identifiant")
     If Not elementHtml Is Nothing Then
                bOk = True
             elementHtml.Value = "IDessai"

         Set elementHtml = IE.Document.getElementById("password")
         If Not elementHtml Is Nothing Then
                    bOk = True
              elementHtml.Value = "MDPessai"

                Set elementHtml = IE.Document.getElementById("submit")
                 If Not elementHtml Is Nothing Then
                            bOk = True
                     elementHtml.Click
        Else
            bOk = False
            End If

                Else
                    bOk = False
                    End If

                        Else
                            bOk = False
                            End If

        'deplacement page recherche
         With IE
        .navigate "https://siteweb/recherche"
        Do While .ReadyState <> READYSTATE_COMPLETE
            Loop
        DoEvents
        'Loop  'attend la fin du chargement
        End With

        'accès quantième
         Set elementHtml = IE.Document.getElementById("code_Qnt")
         If Not elementHtml Is Nothing Then
                bOk = True
         elementHtml.Value = "rouge"
                End If
'=======================problème=========================== 

        Set elementHtml = IE.Document.getelementsbyname("search")
        If Not elementHtml Is Nothing Then
        bOk = True
        elementHtml.Click
        Else
          bOk = False
            End If

   'If bOk Then MsgBox "connexion réussie!" Else MsgBox "connexion échouée!"
        Set IE = Nothing
 End Sub

Le probleme, c'est qu'il ne trouve pas le "search" car ce n'est pas un "<input" mais un "<button".

Vous auriez une idée de la commande svp ? ou une idée ou chercher ^^

Merci d'avance

Bonne fin de week-end

Bonjour,

pour vérifier le nom des éléments d'une page,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Set IE = CreateObject("internetExplorer.Application")
IE.Visible = True
IE.navigate "https://monsite/mapage"   'à adapter
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")
For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

pour un clic sur un bouton

Set Helem = maPageHtml.getElementsByTagName("input")
For i = 0 To Helem.Length - 1
 If Helem(i).getAttribute("name") = "valider" Then Helem(i).Click   'à adapter le nom "valider"
Next

Merci pour ta réponse

J'ai essayé mais pour l'instant sans succès, je réessaye demain.

Rebonjour,

J'ai reussi !!! ça m'a prit un peu de temps mais c'est bon.

Set DOCelement = IEdoc.getElementsByTagName("button")(3)
              DOCelement.Click

Merci !!

Petite question encore si tu as une idée stp ?

Je cherche à accepter un téléchargement par VBA. Je souhaiterai que le code accepte le téléchargement. Je cherche sur le net la mais je n'ai pas trouvé grand chose pour le moment.

Bonjour,

comment se fait l'acceptation manuellement ? enter, bouton autre ?

si c'est une nouvelle fenêtre qui s'ouvre, peut-tu vérifier le code source de cette nouvelle fenêtre ?

La macro travaille donc sur IE, pour aller télécharger un document, je n'ai pas d'URL pour télécharger car le document téléchargé depend d'une recherche que la macro s'occupe de faire avant.

Donc j'arrive à lancer le téléchargement, une boite de dialogue s'ouvre (voir l'image), j'ai une ligne de code qui fait visible.true sur IE afin de pouvoir ensuite faire "Tab" sur la boite de dialogue, le problème, c'est que je dois avec ma souris cliquer sur la page qui s'ouvre sinon le "Tab" peut se faire ailleurs, sur mon bureau par exemple.

    
'cliquer sur le .csv à télécharger
     Set DOCelement = IEdoc.getElementsByClassName("excel-o")(0)
     DOCelement.Click

'accepter le téléchargement
     ie.Visible = True
     Application.Wait Now + TimeValue("00:00:02")
     CreateObject("WScript.Shell").SendKeys "{Tab 2}~"
     Application.Wait Now + TimeValue("00:00:02")
     

Vous auriez une idée pour gérer la boite de dialogue ? Merci

Petit up pour un idée qui permette de gérer la boite de dialogue pour les téléchargement de IE svp ? ^^

Merci

Bonjour Repi17,

Désolé pour le temps de réponse, malheureusement je n'ai pas trouvé de solution.

Je vous suggère de lancer un nouveau fil en espérant que d'autres membres de la communauté pourraient vous apporter une réponse.

Bonjour,

Je veux bien regarder, mais donne un fichier excel épuré pour cibler juste le problème et indique l'adresse du site en question !

Ou envoie moi l'adresse en MP si confidentiel.

Normalement quand sous excel on clique sur un lien .csv ou .txt, il ;'ouvre ou le sauvegarde automatiquement ? je vais faire quelques essais.

A ta disposition si je peux ...

Repi17 a écrit :

La macro travaille donc sur IE, pour aller télécharger un document, je n'ai pas d'URL pour télécharger car le document téléchargé depend d'une recherche que la macro s'occupe de faire avant.

On peut faire une double interrogation comme j'ai eu à le faire plusieurs fois récemment.

Bonjour,

Désolé pour le temps réponse.

Je ne peux malheureusement pas diffuser le site.

Je peux seulement diffuser mon code une fois nettoyé ..

Une double interrogation ?

Merci

Repi17 a écrit :

Une double interrogation ?

Merci

Oui, le première ira chercher l'URL sur la page initiale et relancera l'interrogation sur la nouvelle page.

C'est assez proche de ce que j'ai réalisé ici pour AlienFall

https://forum.excel-pratique.com/excel/recuperation-d-un-bout-de-texte-webrowser-vba-t96803-60.html

mais il faudra bien sûr aller voir le code de la première interrogation pour capter la seconde URL, savoir si cette second interrogation se fait sur l'URL seule ou par une form avec méthode get ou post.

En tous cas on avait réussi.

Tu peux toujours m'envoyer des éléments en MP si tu veux une aide efficace.

Bon ce n'est pas garanti car récemment j'ai du contourner le problème à cause d'un captcha sur le site.

Rechercher des sujets similaires à "macro connexion site internet"