MACRO connexion site internet

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Repi17
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 15 mars 2014
Version d'Excel : 2010 FR

Message par Repi17 » 16 juillet 2017, 14:21

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
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'000
Appréciations reçues : 255
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 17 juillet 2017, 02:52

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! de faire un clic sur le bouton résolu pour nous aider à t'aider.
Si vous avez un doute :
annonces/explications-et-regles-a-respecter-t13.html

isabelle
Avatar du membre
Repi17
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 15 mars 2014
Version d'Excel : 2010 FR

Message par Repi17 » 17 juillet 2017, 18:57

Merci pour ta réponse ;)

J'ai essayé mais pour l'instant sans succès, je réessaye demain.
Avatar du membre
Repi17
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 15 mars 2014
Version d'Excel : 2010 FR

Message par Repi17 » 12 août 2017, 14:23

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.
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'000
Appréciations reçues : 255
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 12 août 2017, 16:27

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 ?
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
Si vous avez un doute :
annonces/explications-et-regles-a-respecter-t13.html

isabelle
Avatar du membre
Repi17
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 15 mars 2014
Version d'Excel : 2010 FR

Message par Repi17 » 13 août 2017, 12:28

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.


Image
    
'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 ;)
Avatar du membre
Repi17
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 15 mars 2014
Version d'Excel : 2010 FR

Message par Repi17 » 15 août 2017, 18:30

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

Merci
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'000
Appréciations reçues : 255
Inscrit le : 16 mars 2017
Version d'Excel : 2010 sur PC

Message par i20100 » 24 août 2017, 08:49

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.
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
Si vous avez un doute :
annonces/explications-et-regles-a-respecter-t13.html

isabelle
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'625
Appréciations reçues : 604
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 24 août 2017, 10:08

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

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 11'625
Appréciations reçues : 604
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR

Message par Steelson » 24 août 2017, 12:06

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.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message