VBA - Problème clic bouton sur page HTML
Bonjour à tous,
Avec cette macro, Je voudrais (Si cela est possible bien-sûr !):
1) Que le code me connecte à mon compte Yahoo!mail.
2) Que le code accède à mes mails (Clic bouton "Mail").
3) Que le code ouvre un nouveau mail (Clic bouton "Ecrire").
4) Que le code ajoute du texte pré-défini dans le corps du nouveau mail.
5) Que le code ajoute 1 pièce jointe au nouveau mail.
Le code ci-dessous s'arrête sur la ligne rouge.
Le mot de passe (Password) ne s'affiche pas dans l'élément textbox de la page web 2...
Petite explication du login chez Yahoo!:
Page web 1:
a) On rentre sont UserName.
b) On clique sur le bouton "Suivant".
Page web 2:
a) On rentre son Password.
b) On clique sur le bouton "Se connecter".
On dirais qu'au changement de page, "IEObjectElement" ne fonctionne plus...
Du coup, n'y aurait-il pas un souci avec "Set IEDoc = IE.Document" qui ne se réactualiserai pas en basculant sur la deuxième page web ???
Une piste peut-être ???
Un petit coup de main s'il vous plait, je suis perdu !!! :(
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| eclare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWNORMAL = 1
Sub LoginYahooMail()
'
' LoginYahooMail Macro
'
'
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim IEObjectElement As HTMLObjectElement
Dim URL As String
Dim UNElementID As String
Dim PWElementID As String
Dim SIElementID As String
Dim BoutonMailElementID As String
Dim BoutonEcrireElementID As String
Dim UserName As String
Dim Password As String
Dim mMessage As Object
Dim mConfig As Object
Dim mChps
URL = "https://login.yahoo.com"
UNElementID = "login-username"
PWElementID = "login-passwd"
SIElementID = "login-signin"
BoutonMailElementID= "mega-bottombar-mail"
BoutonEcrireElementID = "paneshell"
UserName = "nom d'utilisateur @yahoo.fr"
Password = "mot de passe"
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
apiShowWindow IE.hWnd, SW_MAXIMIZE
'Navigue jusqu'à l'URL.
IE.Navigate URL
'Attend que la page web soit totalement chargée.
Do Until IE.readyState = 4 'READYSTATE_COMPLETE in early binding
DoEvents
Loop
'Créer le document de l'URL.
Set IEDoc = IE.Document
'Recherche le UserName TextBox en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(UNElementID)
IEObjectElement.Value = UserName
Set IEObjectElement = Nothing
'Clique sur le Bouton "Suivant" en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(SIElementID)
IEObjectElement.Click
'Attend que la page web soit totalement chargée.
Do Until IE.readyState = 4 'READYSTATE_COMPLETE in early binding
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:03")) 'Retarde de 03 secondes l'exécution de la suite du code...
'Créer le document de l'URL.
Set IEDoc = IE.Document
'Recherche le Password TextBox en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(PWElementID)
IEObjectElement.Value = Password
Set IEObjectElement = Nothing
'Clique sur le Bouton "Se connecter" en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(SIElementID)
IEObjectElement.Click
'Clique sur le bouton "Mail" en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(BoutonMailElementID)
IEObjectElement.Click
'Clique sur le bouton "Ecrire" en utilisan l'élement ID.
Set IEObjectElement = IEDoc.getElementByid(BoutonEcrireElementID)
IEObjectElement.Click
Set mMessage = CreateObject("CDO.Message")
With mMessage
Set .Configuration = mConfig
.From = "xxxxx.xxxxx@yahoo.fr"
.To = Range("R33").Value
.Cc = ""
.Subject = ""
.TextBody = "Bonjour " & Range("I8").Value & "," & vbCrLf _
& vbLf _
& vbLf _
& vbLf _
& "Cordialement." & vbCrLf _
& vbLf _
& vbLf _
& "Mr xxxxx xxxxx" _
& vbLf _
& vbLf _
& vbLf
.AddAttachment "C:\Users\xxxxx xxxxx\Documents\Conditions Commerciales.pdf"
End With
'Vide les variables object.
Set IEObjectElement = Nothing
Set IEDoc = Nothing
Set IE = Nothing
Set mMessage = Nothing
Set mConfig = Nothing
Set mChps = Nothing
End Sub |