Copie d'une page web avec une macro Excel 365
Résolu
mikel831
Messages postés
188
Date d'inscription
mardi 23 octobre 2012
Statut
Membre
Dernière intervention
16 novembre 2024
-
1 avril 2024 à 11:42
mikel831 Messages postés 188 Date d'inscription mardi 23 octobre 2012 Statut Membre Dernière intervention 16 novembre 2024 - 18 avril 2024 à 18:27
mikel831 Messages postés 188 Date d'inscription mardi 23 octobre 2012 Statut Membre Dernière intervention 16 novembre 2024 - 18 avril 2024 à 18:27
A voir également:
- Copie d'une page web avec une macro Excel 365
- Supprimer une page word - Guide
- Traduire une page web - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
1 réponse
BoBot
Messages postés
4054
Date d'inscription
mardi 4 juillet 2023
Statut
Modérateur
Dernière intervention
16 novembre 2024
263
8 avril 2024 à 11:53
8 avril 2024 à 11:53
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.
18 avril 2024 à 18:27
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 ?