Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Internet
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

Internet

Requêtes sur Internet

Pour insérer un tableau provenant d’un site Internet, à partir d’Excel, utilisez la démarche suivante :

 Cliquez sur la commande images/12RI01N.png située dans le groupe Récupérer et transformer des données de l’onglet Données.

 Saisissez l’adresse du site web souhaité dans la zone URL, puis cliquez sur le bouton OK.

 La liste des tableaux (ou tables) de la page web est alors affichée.

 Cliquez sur le tableau souhaité, puis sur la liste déroulante images/12RI03N.png située en bas à droite de la boîte de dialogue.

Le tableau est alors téléchargé dans une nouvelle feuille Excel.

Exemple

L’exemple suivant permet d’importer le palmarès des actions françaises à partir de la page web https://www.boursier.com/palmares/paris :

images/N12RI01.png

Résultat dans Excel

images/N12RI02.png

La requête apparaît dans le volet Requêtes et connexions. Vous pouvez remplacer son nom par "Palmares" (clic droit et sélection de l’option Renommer dans le menu contextuel).

images/N12RI03.png

Vous pouvez modifier le nom de l’onglet et celui du tableau de données qui portent également le nom de la requête.

L’objet QueryTable

L’objet QueryTable (table de requête) représente la requête associée à la plage de données externes (objet ListObject). Les données de la requête peuvent provenir d’une source externe, comme une base de données Microsoft Access ou SQL ou de données extraites par une requête sur le Web.

1. Propriétés de l’objet QueryTable

Propriétés des données externes

Certaines propriétés de l’objet QueryTable correspondent aux informations de la boîte de dialogue Propriétés des données externes.

Pour afficher cette boîte de dialogue :

 Activez la plage de données externe en cliquant sur l’une de ses cellules.

 Sélectionnez la commande images/12RI05N.png du groupe Requêtes et connexions de l’onglet Données.

La fenêtre suivante est alors affichée :

images/N12RI04.png

Propriétés

Valeurs retournées

1.

RowNumbers

Booléen

2.

AdjustColumnWidth

Booléen

3.

PreserveColumnInfo

Booléen

4.

PreserveFormatting

Booléen

5.

RefreshStyle

Constantes :

xlInsertDeleteCells

xlInsertEntireRows

xlOverwriteCells

La zone Nom se rapporte à l’objet ListObject. Exemple : ActiveSheet.ListObjects(1).Name.

Propriétés de la requête

D’autres propriétés de l’objet QueryTable correspondent aux informations de la boîte de dialogue Propriétés de la requête accessible au moyen de la commande images/N12RI05.png du groupe Modifier de l’onglet Requête.
images/N12RI06.png

Propriétés

Valeurs retournées

1.

BackgroundQuery

Booléen

2.

RefreshPeriod

Entier long

3.

RefreshOnFileOpen

Booléen

4.

SaveData

Booléen

Méthodes de l’objet QueryTable

CancelRefresh

Supprime toutes les requêtes d’arrière-plan de la plage de données...

Publication de pages web

Il est possible de générer une page web au format html à partir d’un classeur, d’une feuille de calcul, d’un graphique ou d’une plage de cellules et de mettre à jour automatiquement cette page lors de l’enregistrement du classeur.

Pour publier une page web à partir d’Excel, effectuez les instructions suivantes :

 Sélectionnez l’option Enregistrer sous de l’onglet Fichier.

 Dans la boîte de dialogue, sélectionnez le type de fichier Page Web (*.htm ; *.html).

 Cliquez sur le bouton de commande Publier pour sélectionner les éléments à publier et les options de publication (cochez les options Ouvrir la page Web publiée dans un navigateur et Republier automatiquement lors de chaque enregistrement de ce classeur).

 Cliquez à nouveau sur Publier pour générer la page web.

La page est générée et affichée dans votre navigateur.

En VBA, pour associer un élément d’un classeur à une page web, vous devez créer un objet PublishObject (en utilisant la méthode Add de la collection Publish Objects). Pour publier la page web, vous devrez ensuite utiliser la méthode Publish de l’objet PublishObject.

1. Association d’un élément de classeur à une page web

Syntaxe

PublishObjects.Add(SourceType, FileName, Sheet, Source, HtmlType,  
DivID, Title) 

Seuls les arguments SourceType et FileName sont obligatoires.

PublishObjects

Expression qui renvoie une collection PublishObjects.

SourceType

Type de l’élément à publier (xlSourceSheet, SourceRange, xlSourceworkbook, xlSourceChart, xlSourceQuery, xlSourcePivotTable…).

Sheet

Nom de la feuille de calcul enregistrée en tant que page web.

Source

Nom de l’élément à publier...

Les objets WebOptions et DefaultWebOptions

Les objets WebOptions et DefaultWebOptions contiennent les attributs utilisés par Excel lors de l’enregistrement d’un document sous la forme d’une page web.

L’objet DefaultWebOptions contient les options web par défaut de l’application Excel : son conteneur est l’objet Application. Les propriétés de l’objet correspondent aux attributs accessibles depuis le bouton Options web de la catégorie Options avancées des options Excel.

L’objet WebOptions contient les options web du classeur spécifié : son conteneur est l’objet Workbook. Les propriétés de l’objet correspondent aux attributs accessibles depuis le bouton Outils/Options web lors de l’enregistrement d’un classeur au format "Page web".

images/N12RI07.png

Certaines propriétés sont communes aux deux objets, d’autres sont spécifiques à l’objet DefaultWebOptions.

1. Propriétés

a. Options de l’onglet Général

images/12RI10N.png

Propriétés de l’objet DefaultWebOptions

1.

SaveHiddenData

Booléen

2.

LoadPictures

Booléen

b. Options de l’onglet Navigateurs

images/12RI11N.png

Propriétés communes aux deux objets

1.

TargetBrowser

Constantes :

msoTargetBrowserIE4 (IE5 ou IE6)

msoTargetBrowserV3 (ou V4)

2.

AllowPNG

Booléen

3.

RelyOnCSS

Booléen

4.

RelyOnVML

Booléen

Propriétés de l’objet DefaultWebOptions

5.

SaveNewWebPagesAsWebArchives

Booléen

c. Options de l’onglet Fichiers

images/12RI12N.png

Propriétés communes aux deux objets

1.

OrganizeInFolder

Booléen

2.

UseLongFileNames

Booléen

Propriétés de l’objet DefaultWebOptions

3.

UpdateLinkOnSave

Booléen

4.

CheckIfOfficeIsHTMLEditor

Booléen

d. Autres propriétés

Propriétés communes aux deux objets...

Import, export et mappage de fichiers XML

Le modèle objet Excel XML présenté ci-après décrit les nouveaux objets permettant de prendre en charge des données au format XML dans des classeurs Excel.

images/xlm.PNG

1. Collections

ListObjects

Collection de toutes les listes d’une feuille de calcul Excel. Ces listes peuvent contenir des données XML.

ListColumns

Collection de toutes les colonnes d’une liste Excel.

XmlMaps

Collection de tous les mappages XML d’un classeur. Les mappages sont utilisés pour gérer la relation entre les plages de cellules Excel et les éléments du schéma XML.

XmlSchemas

Collection de tous les schémas XML contenus dans un mappage XML.

XmlNamespaces

Collection de tous les espaces de noms XML contenus dans le classeur spécifié.

2. Méthodes de l’objet Workbook

XmlImport

Permet d’importer un fichier de données XML.

Exemple

Sub ImportXML() 
Dim oMapEmployes As XmlMap   
 
' Importe le fichier Employes.xml dans la feuille active 
ActiveWorkbook.XmlImport Url:=ActiveWorkbook.Path _ 
    & "\Employes.xml", ImportMap:=oMapEmployes, _ 
    Overwrite:=True, Destination:=Range("A1") 
oMapEmployes.Name = "Employes" 
End Sub 

SaveAsXMLData

Permet d’exporter les données d’un mappage XML dans un fichier XML.

Exemple

Sub ExportXML()   
 
' Exporte le mappage XML dans le fichier Clients2.xml 
ActiveWorkbook.SaveAsXMLData _  
      Filename:=ActiveWorkbook.Path & "\Clients2.xml", _  
      Map:=ActiveWorkbook.XmlMaps(1) 
End Sub 

3. Événements de l’objet Workbook

AfterXmlExport

Survient après l’export d’un fichier XML.

AfterXmlImport

Survient après l’import d’un...

L’objet HyperLink

L’objet HyperLink représente un lien hypertexte contenu dans une feuille de calcul, une plage de cellules ou un graphique.

L’objet HyperLink appartient à la collection HyperLinks des objets conteneur Range, Workbook et Chart.

1. Propriétés

Address

Chaîne de caractères. Adresse de la cellule contenant le lien hypertexte spécifié. 

EmailSubject

Chaîne de caractères. Texte du sujet du message électronique du lien hypertexte spécifié (propriété utilisée avec les liens hypertextes des messages électroniques). 

Name

Chaîne de caractères. Nom du lien hypertexte.

Range

Objet Range. Plage à laquelle le lien hypertexte spécifié est lié.

ScreenTip

Chaîne de caractères. Texte d’info-bulle du lien hypertexte spécifié.

Shape

Objet Shape. Forme liée au lien hypertexte spécifié.

SubAddress

Chaîne de caractères. Emplacement dans le document associé au lien hypertexte.

TextToDisplay

Chaîne de caractères. Texte à afficher pour le lien hypertexte spécifié.

Type

Entier long. Type du lien hypertexte spécifié.

2. Méthodes

AddToFavorites

Ajoute un raccourci vers le lien hypertexte au dossier des documents favoris.

CreateNewDocument

Crée un nouveau document lié au lien hypertexte spécifié.

Delete

Supprime le lien hypertexte spécifié.

Follow

Charge le document cible du lien hypertexte spécifié et affiche le document dans l’application appropriée.

Exemple

L’exemple suivant permet :

  • de supprimer tous les liens hypertexte d’une feuille de calcul,

  • d’ajouter un lien hypertexte dans une cellule sélectionnée par l’utilisateur,

  • d’afficher le document cible du lien hypertexte.

Sub Lien_HyperTexte()  
Dim oShtEmployes As Worksheet  
Dim oLnk As Hyperlink  
Dim oRng As Range 
   
' Supprime tous les liens hypertexte de la feuille  
Set oShtEmployes = ThisWorkbook.Sheets("Employés")  
For Each oLnk In oShtEmployes.Hyperlinks  
    oLnk.Delete  
Next oLnk  
   
' Sélection de la cellule par l'utilisateur  
Set oRng = Application.InputBox("Sélectionner la cellule 
pour le lien hypertexte", , , , , , , 8)  
   
' Si sélection de plusieurs cellules, on ne prend que la première 
If oRng.Cells.Count > 1 Then  
   Set oRng = oRng.Cells(1, 1)  
End If  
   
' Ajoute un lien hypertexte dans la première cellule sélectionnée 
oRng.Value = "Lien sur le classeur publié"  
oShtEmployes.Hyperlinks.Add Anchor:=oRng, Address:="Employes.html" 
   
' Affiche le document cible du lien hypertexte  
oShtEmployes.Hyperlinks(1).Follow  
 
End Sub