1. Livres & vidéos
  2. VBA Excel (versions 2024 et Microsoft 365)
  3. Internet
Extrait - VBA Excel (versions 2024 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2024 et Microsoft 365) Programmer sous Excel : macros et langage VBA
1 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/24N12RI01.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.boursedirect.fr/fr/marche/actions :

images/24N12RI02.png

Résultat dans Excel

images/24N12RI03.png

Lorsque vous sélectionnez une cellule du tableau, les onglets contextuels suivants s’affichent à droite de la barre de menu :

images/icn12.png

L’onglet Requête vous permet notamment d’actualiser les données, de modifier les propriétés de la requête, de la supprimer ou de la dupliquer.

Vous pouvez par exemple modifier les en-têtes de colonnes et renommer la requête, via l’éditeur Power Query, en cliquant sur le bouton images/24N12RI04.png :
images/24N12RI05.png

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/24N12RI06.png du groupe Données de tableau externe de l’onglet Création de tableau.

La fenêtre suivante est alors affichée :

images/24N12RI07.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...

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...

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/24N12RI10.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...

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...

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é...

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  
    Set oRng = oLnk.Range 
    oLnk.Delete  
    oRng.Value = "" 
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...