Copie d'une page web avec une macro Excel 365
Résolu
mikel831
Messages postés
220
Date d'inscription
Statut
Membre
Dernière intervention
-
mikel831 Messages postés 220 Date d'inscription Statut Membre Dernière intervention -
mikel831 Messages postés 220 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Copie d'une page web avec une macro Excel 365
- Supprimer une page word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Imprimer tableau excel sur une page - Guide
- Déplacer une colonne excel - Guide
- Web office - Guide
1 réponse
Bonjour !
L'IA qui aime les défis est là !
Pour copier une page web en utilisant VBA dans Excel 365, vous pouvez utiliser les objets QueryTables ou InternetExplorer. Cependant, Excel peut ne pas formater correctement le HTML en fonction du site Web. Voici comment le faire avec QueryTables:
```
Sub CopierPageWeb()
Dim qt As QueryTable
Dim url As String
' définir l'URL du site Web à copier
url = "http://www.example.com"
' ajouter une QueryTable...
Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;" & url, Destination:=Range("A1"))
' configurer la QueryTable...
With qt
.WebSelectionType = xlEntirePage '... pour sélectionner toute la page
.Refresh BackgroundQuery:=False '... pour rafraîchir les données et les coller dans la feuille
End With
' libérer l'objet QueryTable
Set qt = Nothing
End Sub
```
Cela doit automatiquement coller l'ensemble de la page Web à l'URL spécifiée dans la cellule A1 de la feuille active.
Remarque : Assurez-vous d'avoir une connexion Internet active et que l'URL que vous spécifiez est valide et accessible.
Si vous voulez éviter l'utilisation de QueryTables, vous pouvez utiliser InternetExplorer.Application avec HTMLDocument et HTMLBody. Voici comment vous pouvez le réaliser:
```
Sub CopierPageWeb()
Dim IE As Object, html As Object
' Créer un nouvel Internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
' URL de la page à copier
IE.Navigate "http://www.example.com"
' Attendre que IE ait fini de charger la page
Do While IE.Busy Or IE.readyState <> 4
Application.Wait DateAdd("s", 1, Now)
Loop
' Copier le texte de la page
Set html = IE.document.all
html.Select
html.CopyToClipboard
' Coller les informations dans Excel
Range("A1").PasteSpecial
' Quitter IE
IE.Quit
Set IE = Nothing
Set html = Nothing
End Sub
```
Pour ce code, il est préférable d'ajouter une référence à "Microsoft HTML Object Library" en utilisant "Tools -> References" dans l'éditeur VBA.
Assurez-vous bien également de ne pas naviguer sur d'autres pages avec Internet Explorer pendant l'exécution de la macro.
L'IA qui aime les défis est là !
Pour copier une page web en utilisant VBA dans Excel 365, vous pouvez utiliser les objets QueryTables ou InternetExplorer. Cependant, Excel peut ne pas formater correctement le HTML en fonction du site Web. Voici comment le faire avec QueryTables:
```
Sub CopierPageWeb()
Dim qt As QueryTable
Dim url As String
' définir l'URL du site Web à copier
url = "http://www.example.com"
' ajouter une QueryTable...
Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;" & url, Destination:=Range("A1"))
' configurer la QueryTable...
With qt
.WebSelectionType = xlEntirePage '... pour sélectionner toute la page
.Refresh BackgroundQuery:=False '... pour rafraîchir les données et les coller dans la feuille
End With
' libérer l'objet QueryTable
Set qt = Nothing
End Sub
```
Cela doit automatiquement coller l'ensemble de la page Web à l'URL spécifiée dans la cellule A1 de la feuille active.
Remarque : Assurez-vous d'avoir une connexion Internet active et que l'URL que vous spécifiez est valide et accessible.
Si vous voulez éviter l'utilisation de QueryTables, vous pouvez utiliser InternetExplorer.Application avec HTMLDocument et HTMLBody. Voici comment vous pouvez le réaliser:
```
Sub CopierPageWeb()
Dim IE As Object, html As Object
' Créer un nouvel Internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
' URL de la page à copier
IE.Navigate "http://www.example.com"
' Attendre que IE ait fini de charger la page
Do While IE.Busy Or IE.readyState <> 4
Application.Wait DateAdd("s", 1, Now)
Loop
' Copier le texte de la page
Set html = IE.document.all
html.Select
html.CopyToClipboard
' Coller les informations dans Excel
Range("A1").PasteSpecial
' Quitter IE
IE.Quit
Set IE = Nothing
Set html = Nothing
End Sub
```
Pour ce code, il est préférable d'ajouter une référence à "Microsoft HTML Object Library" en utilisant "Tools -> References" dans l'éditeur VBA.
Assurez-vous bien également de ne pas naviguer sur d'autres pages avec Internet Explorer pendant l'exécution de la macro.
Bonjour!
J'ai opté pour la QueryTable, et ça fonctionne bien.
Cependant, dans certains cas, les images et les icones de la page web perturbe la copie . Est-il possible de les supprimer en copiant la QT ?