Bonjour a tous

une question sur un sujet ayant été posé récemment m'a interpelé alors , j'ai pensé qu'il fallait en faire une fonction
en effet la fonction getobject permettant de comuniquer entre application a des avantages indéniables

un seul bemole elle n'existe pas pour Internet explorer

je sujet ayant été résolu je vous livre cette petite fonction pour palier a ce manque

fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Function Getobjects(url) As Object
    Dim objShell As Shell,obj As Object
    Set objShell = New Shell
    For Each obj In objShell.Windows
        If TypeName(obj.document) = "HTMLDocument" Then
            If obj.LocationURL = url Then Set Getobjects = obj
        End If
    Next obj
End Function
comme vous le voyez ca n'est pas très compliqué

Testons cette petite fonction

nous allons la tester sur le forum vba exel (a condition bien évidement que cette fenêtre soit ouverte bien entendu, le principe du getobject étant justement d'aller chercher une app déjà ouverte )

Nous allons afficher dans un msgbox le titre de la dernière question qui a été posé sur le forum
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Sub test_du_getobject()
    Dim ie As Object, url As String
    url = "http://www.developpez.net/forums/f664/logiciels/microsoft-office/excel/macros-vba-excel/"
    Set ie = Getobjects(url)
    MsgBox ie.document.getElementsByClassName("threads")(0).Children(0).innerText
End Sub
et voila si vous regardez la ligne du msgbox vous verrez que j'utilise les fonctions de la librairie IE de la même manière que si j'avais créé l'élément IE ,pour ce genre d'opération le tutoriel de qwazerty vous indiquera comment récupérer des données et interagir avec IE

bonne utilisation