Faire une boucle

konishuha

XLDnaute Nouveau
[Résolu]Copier une page html sous excel

Bonjour à tous,

je souhaiterai faire des tests sur de connexion sur une page web via excel.

En épluchant le forum j'ai trouvé le code suivant :

Code:
Sub connexion()
 
    Dim IE As InternetExplorer
    Dim IEdoc As Object
    Dim DOCelement As Object
    
    Set IE = New InternetExplorer
    IE.Visible = True
    IE.navigate ("http://gmail.com/")
 
     ' attente de fin de chargement
    Do Until IE.readyState = 4
        DoEvents
    Loop
    
    Set IEdoc = IE.document
    Sheets("Feuil2").Cells.Clear
     
    'login
     Set DOCelement = IEdoc.getElementsByName("email").Item
     DOCelement.Value = "NOMUTILISATEUR"
     
    'password
     Set DOCelement = IEdoc.getElementsByName("PASSWD").Item
     DOCelement.Value = "MOT DE PASSE"
     DOCelement.Select
     
    'connexion
     Set DOCelement = IEdoc.forms(0)
     DOCelement.submit
 
End Sub

Je souhaiterai faire en sorte que les valeurs login et mot de passe soit pris dans un tableau excel.

Et valide si la connection et ok ou non

Merci d'avance pour votre aide.
 
Dernière édition:

konishuha

XLDnaute Nouveau
Re : Faire une boucle

En cherchant dans le forum j'ai modifié et j'ai réussi à faire une boucle mais je n'arrive pas a coller la page web obtenu sur la feuil2 afin de vérifier si la connexion à fonctionner.

Code:
Sub connexion()
For Each X In Sheets("Feuil1").Range("b2:" & Sheets("Feuil1").Range("b65536").End(xlUp).Address)
    Sheets("Feuil2").Cells.Clear
    login = X.Value
    Password = X.Offset(0, 1).Value
    
    Dim IE As InternetExplorer
    Dim IEdoc As Object
    Dim DOCelement As Object
    
    Set IE = New InternetExplorer
    IE.Visible = True
    IE.navigate ("http://gmail.com/")
 
     ' attente de fin de chargement
    Do Until IE.readyState = 4
        DoEvents
    Loop
    
    Set IEdoc = IE.document
    Sheets("Feuil2").Cells.Clear
     
    'login
     Set DOCelement = IEdoc.getElementsByName("email").Item
     DOCelement.Value = login
     
    'password
     Set DOCelement = IEdoc.getElementsByName("PASSWD").Item
     DOCelement.Value = Password
     DOCelement.Select
     
    'connexion
     Set DOCelement = IEdoc.forms(0)
     DOCelement.submit

Next
End Sub

Je joins un exemple

Merci pour votre aide
 

Pièces jointes

  • exemples.xls
    41 KB · Affichages: 88
  • exemples.xls
    41 KB · Affichages: 90
  • exemples.xls
    41 KB · Affichages: 88
Dernière édition:

konishuha

XLDnaute Nouveau
Re : Faire une boucle

Toujours dans mes recherches j'ai rajouté ce bout de code

Code:
With Sheets("feuil2").QueryTables.Add(Connection:="URL;http://gmail.com", Destination:=Sheets("feuil2").Range("A1"))
      .BackgroundQuery = True
      .WebSelectionType = xlEntirePage
      .WebFormatting = xlWebFormattingNone
      .Refresh BackgroundQuery:=False
    End With

Le problème c'est que ça ouvre une nouvelle page (dans l'exemple gmail) mais pas la page obtenu par le code plus haut.
 

konishuha

XLDnaute Nouveau
Re : Faire une boucle

Grâce à Math du Forum Forum Excel de www.excel-pratique.com

J'ai résolu mon problème,

Et ce malgré mon manque évident de clarté dans ma demande.

je note donc le résultat :


Code:
Sub connexion()
For Each X In Sheets("Feuil1").Range("b2:" & Sheets("feuil1").Range("b6").End(xlUp).Address)
    Sheets("Feuil2").Cells.Clear
    login = X.Value
    Pass = X.Offset(0, 1).Value
    
    Dim IE As InternetExplorer
    Dim IEdoc As Object
    Dim DOCelement As Object
   
    Set IE = New InternetExplorer
    IE.Visible = True
    IE.navigate ("http:url/")

     ' attente de fin de chargement
    Do Until IE.readyState = 4
        DoEvents
    Loop
   
    Set IEdoc = IE.document
    Sheets("Feuil2").Cells.Clear
     
    'login
     Set DOCelement = IEdoc.getElementsByName("usr").Item
     DOCelement.Value = login
     
    'password
     Set DOCelement = IEdoc.getElementsByName("passrd").Item
     DOCelement.Value = Pass
     DOCelement.Select
     
    'connexion
     Set DOCelement = IEdoc.forms(0)
     DOCelement.submit

Fenetres_IE

Set Result = Sheets("Feuil3").Range("c1")
    If Result <> Sheets("Feuil3").Range("a1") Then
        X.Offset(0, 2) = "LOGIN KO"
    Else
        X.Offset(0, 2) = "LOGIN OK"
    End If
IE.Quit 'option pour les fermer
Next
End Sub

Sub Fenetres_IE()
    'Nécessite d'activer la référence
    '"Microsoft Internet Controls"
    'et
    '"Microsotf HTML Object Library"
    
    Dim IE As New InternetExplorer
    Dim winShell As New ShellWindows
    Dim maPageHtml As HTMLDocument
    
    On Error Resume Next
    
    For Each IE In winShell
        If IE.LocationURL <> "" Then
            Set maPageHtml = IE.document
            Sheets("feuil2").Range("a1") = maPageHtml.DocumentElement.innerText

            Set maPageHtml = Nothing
        End If
    Next IE
End Sub

Dans le classeur 3 et la cellule C1 j'ai mis cette formule
Code:
=STXT(Feuil2!A1;1;7)

Dans le classeur 3 et la cellule A1 j'ai mis le mot qui doit apparaitre si la connexion est ok.
 

Statistiques des forums

Discussions
312 841
Messages
2 092 703
Membres
105 514
dernier inscrit
Hébera