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 : Sélectionner tout - Visualiser dans une fenêtre à part
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