- 1 – Avant tous vous allez charger dans votre éditeur VBA, les bibliothèques Microsoft HTML Object Library et Microsoft Internet Controls. (Si vous n’êtes pas sur de la démarche, lisez l’article du 9 Mai 2009)
- 2 – Placez dans votre feuille de calcul, deux objets WebBrower. Pour cela utiliser la commande Développeur / Insérer / Autres contrôles…Dans la liste sélectionnez le contrôle Microsoft Web Brower, cliquez sur le bouton OK et glisser pour tracer votre contrôle. La taille et la position de l’objet n’ont pas d’importance pour l’instant.
- 3 –Comme son nom l’indique un Web Brower est simplement un navigateur Internet que l’on a ici incorporé dans notre feuille de calcul. Donc il va nous permettre d’afficher des pages web et d’en étudier le contenu…
- 4 – La première partie du programme a pour objet d’afficher une page web dans le premier web browser et de trouver des informations sur cette page, notamment le nombre et la liste des images qu’elle contient.
- 6 – Voici le code, puisse t’il vous inspirer des améliorations…
Option Explicit
'ici je lance ma procédure à l'ouverture du classeur
'à vous de choisir éventuellement un autre événements et (ou) un autre objet
Dim maPageHtml As HTMLDocument
Dim imgHtml As HTMLImg
Dim resultat As String
Dim I As Integer
Dim haut As Integer
Dim larg As Integer
'position et taille du premier webbrowser
Feuil2.WebBrowser1.Left = 1
Feuil2.WebBrowser1.Top = 1
Feuil2.WebBrowser1.Width = 400
Feuil2.WebBrowser1.Height = 200
'position du seond webbrowser
Feuil2.WebBrowser2.Left = 500
Feuil2.WebBrowser2.Top = 1
'affichons une page dans le premier webbrower
Feuil2.WebBrowser1.Navigate "http://www.olivier-picot.fr/pagetest.html"
'analysons le contenu de cette page et retournons
'son url + date de modification + taille + nombre d'images
Set maPageHtml = WebBrowser1.Document
resultat = "adresse de la source : " & maPageHtml.URL & vbLf & _
"derniere modification de la page : " & maPageHtml.LastModified & vbLf & _
"taille de la page : " & maPageHtml.fileSize & " octets " & vbLf & _
"nombre d'images dans la page : " & maPageHtml.images.Length & "."
'affichons cette information
MsgBox resultat, , "Information"
'boucle sur les images pour récupérer leurs noms et écriture dans ma feuille de cacul
For I = 0 To maPageHtml.images.Length - 1
Set imgHtml = maPageHtml.images.Item(I)
Feuil2.Cells(I + 15, 1) = imgHtml.src
Next I
'**************************************
'je recupere la taille de la seconde image de ma page
Set imgHtml = maPageHtml.images.Item(1)
haut = imgHtml.Height
larg = imgHtml.Width
'pour adapter la taille de mon webbrowser à celle de mon image
Feuil2.WebBrowser2.Width = larg
Feuil2.WebBrowser2.Height = haut
'un peu de html et l'image est récupérée
.WebBrowser2.Navigate "about:
'il est impossible de passer des variables VBA au code HTML aussi cette méthode ne ‘permet de récupérer toutes les images d'une page sans les nommer une à une et les ‘afficher dans des webbrowser différents
End Sub
7 commentaires:
merci pour les bibliothèques à installer! sacré coup de main, je suis à la recherche depuis un moment!
merci pour ton tuto la class webbrowser et pas super bien documenté
Bonjour je voudrais savoir comment faites pour obtenir les informations sur la page web? je voudrais intégrer une page google maps sur une feuille excel. Merci
Bonjour,
Voici une solution simple de procéder. Je pense à une page html dans laquelle j'incorporerai le code d'intégration de ma carte (celui avec la balise iframe).
Puis ensuite (une fois la page positionnée) je suivrai les explications
de l'article pour afficher cette page.
Si j'ai bien compris la question!
Olivier
Bjr,
Je ne comprends pas cette séquence :
'un peu de html et l'image est récupérée
.WebBrowser2.Navigate "about:
<img src="http://www.olivier-picot.fr/album2.png" />
"
Bonjour
Il s'agit d'une erreur de copier / Coller, lire :
<img src="http://www.olivier-picot.fr/album2.png />"
Merci
Olivier
Apparemment ce n'est plus possible :( https://support.microsoft.com/fr-fr/help/2793374/cannot-insert-certain-scriptable-activex-controls-into-office-2013-doc
Enregistrer un commentaire