Automatiser extraction données web/excel VBA

Fermé
Lucy - 3 juil. 2012 à 12:01
 Meia - 28 févr. 2014 à 14:08
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.

8 réponses

eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
Modifié par eriiic le 3/07/2012 à 12:19
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
0
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
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
3 juil. 2012 à 14:38
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
0
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?
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
3 juil. 2012 à 16:18
il est dans le 1er fichier...
eric
0
oui mais je n'arrive pas à l'adapter au site ccm, désolé je suis pas très forte en vba. Pourrais-tu me l'envoyer adapter à ce cas s'il te plaît parce que chez moi ça ne veut pas marcher...
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
3 juil. 2012 à 17:49
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
0
Toute aide serait la bienvenue, surtout que je suis en train de saisir à la main en attendant...
Merci d'avance
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
4 juil. 2012 à 11:22
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
0

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?
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
4 juil. 2012 à 14:38
J'aurais tendance à dire : impossible.

eric
0
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...
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
4 juil. 2012 à 15:11
tu cliques sur le bouton 'mise à jour' au moins ?
'Requete' n'est qu'une feuille intermédiaire qui ne te sert à rien, chaque lien doit créer une nouvelle feuille comme tu avais demandé.
eric
0
oui bien sûr, je clique sur le bouton et ça me crée de nouvelles feuilles mais elles sont toutes identiques et chargent la page ccm comme je l'ai dit précédemment.
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
4 juil. 2012 à 17:07
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
0
younessland Messages postés 4 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 29 décembre 2012
3 sept. 2012 à 12:00
Bonjour Eric,
Ta macro fonctionne parfaitement, sauf que pour moi, j'utilise un site qui a besoin d'authentifcation et je voudrais savoir ce qu'il faut ajouter dans le code pour que je puisse mettre les codes d'accès du site.
Merci d'avance pour ton aide précieuse
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
3 sept. 2012 à 14:42
Bonjour,

Désolé mais je n'ai pas creusé dans cette direction.
Il faut que tu continues tes recherches.

eric
0
loutcho_xls Messages postés 2 Date d'inscription jeudi 28 mars 2013 Statut Membre Dernière intervention 28 mars 2013
28 mars 2013 à 13:40
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.
0
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.
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
4 juil. 2012 à 17:45
Mais je persiste.
A mon avis ce ne sont que quelques données surement repérables qui t'interessent.
Les rechercher pour ne copier que celles-ci serait plus efficace, surtout si tu as des centaines de pages...
eric
0
Je sais, mais je ne l'ai découvert qu'après avoir développer une dizaine de macros qui extraient puis traitent les données à partir du format de copie de toute la page. A l'avenir je saurai et je chercherai directement à extraire les données qui m'intéressent.

Merci encore
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
28 mars 2013 à 15:10
Bonjour loutcho,

J'ai adapté et modifié un peu le fonctionnement.
Voir explications en Feuil2.
https://www.cjoint.com/c/CCCpj40Y2dj
à tester...

eric
0
loutcho_xls Messages postés 2 Date d'inscription jeudi 28 mars 2013 Statut Membre Dernière intervention 28 mars 2013
28 mars 2013 à 23:10
ça marche super bien (ok avec windows 7, microsoft 2007 mais ça marche pas sur excel 2011 pour mac)... Merci infiniment pour ton aide, ça me rend beaucoup service!
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
28 mars 2013 à 23:44
Pour mac je ne vais rien pouvoir faire pour toi, désolé...
eric
0
Sam 07 Messages postés 30 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 29 novembre 2013
17 oct. 2013 à 10:39
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
0
eriiic Messages postés 24453 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 4 octobre 2022 7 139
17 oct. 2013 à 18:21
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
0
Sam 07 Messages postés 30 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 29 novembre 2013
18 oct. 2013 à 00:34
RE!

ah désolé jesp rien de grave... :/
Merci qd même de s'être penché sur ma question et de m'avoir répondu^^
Bon rétablissement....
0