Automatiser extraction données web/excel VBA
Lucy
-
Meia -
Meia -
Bonjour,
Voici mon problème : je copie des pages web via la fonction "Données/A partir du web" de Excel, ça marche très bien sauf que j'ai des centaines de pages à extraire de la même manière. Je cherche donc un moyen d'automatiser ce processus, d'autant plus que toutes les URL sont identiques à un chiffre près! (c'est plusieurs pages d'un même site)
Je serai vraiment reconnaissante si quelqu'un pouvait m'apporter son aide.
Voici mon problème : je copie des pages web via la fonction "Données/A partir du web" de Excel, ça marche très bien sauf que j'ai des centaines de pages à extraire de la même manière. Je cherche donc un moyen d'automatiser ce processus, d'autant plus que toutes les URL sont identiques à un chiffre près! (c'est plusieurs pages d'un même site)
Je serai vraiment reconnaissante si quelqu'un pouvait m'apporter son aide.
8 réponses
-
Bonjour,
Une macro réalisée il y qcq temps...
Le site ayant évolué depuis, les mises à jour ne fonctionnent plus sur l'exemple.
Modifie la requête web de Feuil1, les adresses web (générées par formule dans ton cas) et les titres des champs désirés en Feuil2 pour tester sur ton site.
Les champs récupérés sont dans le code à partir de :' mettre à jour les données du site (dans feuil2) à partir des données de la requête ws.Cells(i, 3) = [B2]
....
Si pb d'adaptation fourni un fichier exemple avec ta requête et 2-3 adresses web.
cjoint.com et coller ici le lien fourni.
https://www.cjoint.com/?BGdmjnMV4NP
eric -
Je ne comprends pas la partie:
For i = 2 To derlig ' pour chaque ligne d'adresse web
' mettre à jour le n° du site dans la barre d'état
Application.StatusBar = "Site " & i - 1 & "/" & derlig - 1 & " en cours..."
Où est-ce que sont les différentes lignes d'adresses web? Et c'est quoi la barre d'état?
Je veux juste extraire directement une page web sur excel, par exemple la page où nous sommes actuellement (http://www.commentcamarche.net/forum/affich-25514152-automatiser-extraction-donnees-web-excel-vba#newanswer) sans choisir les cellules d'arrivés une à une. Tu peux m'expliquer comment l'adapter à ce cas s'il te plait, je pense que ça m'éclairera.
Merci d'avance-
Re,
Où est-ce que sont les différentes lignes d'adresses web?
A toi de mettre les adresses des pages web dans Feuil2!B2:Bxxx
Et c'est quoi la barre d'état?
C'est juste en bas de la fenetre excel. Ca sert juste à voir la progression car parfois les requêtes sont longues.
Je veux juste extraire directement une page web sur excel, par exemple la page où nous sommes actuellement (https://forums.commentcamarche.net/forum/affich-25514152-automatiser-extraction-donnees-web-excel-vba#newanswer) sans choisir les cellules d'arrivés une à une
quel est l'intérêt ?
D'habitude on s'en sert pour récupérer des infos précises.
Là tu perds toute mise en page avec le texte en vrac dans différentes cellules.
C'est vraiment à que tu veux ?
exemple d'une page ccm : https://www.cjoint.com/?BGdoMevenot
eric -
J'ai déjà programmer des macros pour traiter l'information une fois copier sur excel, c'est pour ça que ça me convient. Car à la base je n'arrivais pas à extraire uniquement certaines données. Par contre, dans l'exemple de la page ccm que tu m'as envoyé, je ne trouve pas le code VBA...pourrais-tu me l'envoyer s'il te plaît?
-
-
-
Le principe de base était de récupérer qcq données.
Là tu veux conserver tous les éléments d'une page recopiés en ligne face à l'adresse de la page web ? ou bien crer une nouvelle feuile à chaque fois ?
Mais encore une fois je ne vois pas du tout l'interet de tout garder, y compris les pubs etc.
c'est à toi de définir où se trouvent tes données par rapport à des chaines fixe.
Par exemple rechercher "adresse : " en colonne A et récupérer les 2 cellules en-dessous...
eric
-
-
Toute aide serait la bienvenue, surtout que je suis en train de saisir à la main en attendant...
Merci d'avance -
Bonjour,
le fichier modifié pour ccm.
Reste le problème du mot de passe sur ton site réel.
A tout hasard j'ai ajouté .SavePassword = True mais je n'ai aucune idée de comment ça va se passer ni de comment le gérer.
De toute façon je n'ai pas de site avec mot de passe pour tester...
https://www.cjoint.com/?BGelvxhup1T
eric -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je ne comprend pas pourquoi lorsque je change les adresses de sites sur la feuille "liste liens", il continue malgré tout à me charger les pages ccm et pas les nouvelles pages. Et pourtant j'ai essayé avec plusieurs sites, même non protéger.
En fait ça ne tient pas compte du changement des URL, pourquoi? Il y un truc à changer dans le code?-
-
Et pourtant vrai. Lorsque je met n'importe quelle autre URL ça me renvoie toujours la même page ccm (celle où nous parlons actuellement et non actualisé depuis que tu m'as envoyé le fichier)...
Je n'ai fait qu'une chose, c'est supprimer les liens que tu avais mis et fait des copier coller d'autres pour tester (même de ccm), mais rien à faire j'obtiens toujours la même chose... -
-
-
-
Ok, je n'avais pas compris comme ça, ni regardé dans le détail les résultats.
Du fait que tu prends la page entière j'avais une autre ligne à modifier.
Essaie avec ce fichier, ça devrait être mieux : https://www.cjoint.com/?BGerfYrh2e8
Il te restera à passer l'écueil du mot de passe, ce n'est peut-être pas gagné.
eric-
-
-
Bonjour Eric,
Ce macro marche très bien. Merci. Par contre le cas où j'aimerais l'appliquer est un peu différent et je ne connais pas grand chose à la programmation pour l'adapter à mon cas.
Peux tu m'aider stp?
J'aimerais créer pas X feuilles mais juste une seule avec juste quelques info de mes presque 300 sites web (une adresse web à un chiffre près à la fin, exemple : https://www.geocad1.vd.ch/index.php?lang=FR&view=sondage&mode=rapport&id=15901
Puisque à priori toutes les pages sont identiques, les informations qui m'intéressent seront à chaque loop sur la même cellule. J'imaginais faire qu'excel copie automatiquement des cellules ciblées non-contigües (~ 5 données par fiche dont les coord X, coord Y, etc) depuis la feuille "requête" et les intégrer à une nouvelle feuille en forme de liste avant de passer au site web suivant.
Merci d'avance pour ton temps et ton aide.
-
-
Merci, cette fois-ci ça marche! Le mot de passe ne gêne pas sur le premier site avec lequel je travail mais bloque sur le 2ème. C'est bizarre mais je ferai avec, sur le 2ème site je n'ai pas beaucoup de données contrairement au 1er (des centaines).
Merci beaucoup eriiic pour ton aide et ta patience. -
Bonjour loutcho,
J'ai adapté et modifié un peu le fonctionnement.
Voir explications en Feuil2.
https://www.cjoint.com/c/CCCpj40Y2dj
à tester...
eric
-
-
-
bonjour eriiic!!
serait il possible que vous adaptiez votre macro de recup de données web pour mon cas!!
en effet j'aimerai mettre à jour mon carnet d'adresse et pour cela je dois récupérer ses infos sur les différents liens qui se trouvent sur la page suivante:
https://lannuaire.service-public.fr/auvergne-rhone-alpes/ardeche
Idem je n'ai pas besoin de toutes les infos des pages concernées, seulement:
- Adresse
- tel fixe
- fax
- courriel
Ainsi ça m'éviterait un certain nombre de copier/coller^^ :/
UN GRAND MERCI D'AVANCE -
Bonjour,
Désolé, mais étant hospitalisé je ne pourrais pas faire grand chose pour toi.
Il faudrait que tu démarres ta propre question si tu veux que qcq'un réponde. Ce fil est trop vieux et personne ne va regarder.
De plus tous les sites ne permettent pas la récup de données, et encore moins avec la méthode proposée ici.
eric -
-