Importer données depuis internet

Bud.boundy

XLDnaute Occasionnel
Bonjour,

j'aimerais trouver une macro me permettant d'importer les données depuis internet à la suite les une des autres (page "données") selon des liens hypertextes rentrés dans la plage A2:A100 (page "lien")

Merci beaucoup
 

MJ13

XLDnaute Barbatruc
Re : Importer données depuis internet

Bonjour,

Dans ton cas le mieux est de faire une macro en l'enregistrant puis en modifiant le code en fonction de tes besoins (attention, cela peut être assez compliqué).

Sinon, cela a déjà été traité sur le forum.
 

MJ13

XLDnaute Barbatruc
Re : Importer données depuis internet

Re bonjour,

Bud, tu peux aller sur ce lien avec MichelXLD qui en parle.


https://www.excel-downloads.com/threads/macro-import-de-donnees-html-vers-excel.79613/

Mais le plus simple est de crée une requête sur le web en déclarant ton URL qui doit être sur ta feuille.

Voici par exemple une macro qui récupère les données avec une adresse en A1
(tu peux essayer avec l'adresse de ce post).


Code:
Sub requete_auto()
' requete_auto Macro
' Macro enregistrée le 09/09/2006 par MJ
    Range("A1").Select
    nomreq = ActiveCell.Text
    
    
    Range("A2").Select
   
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & nomreq, _
        Destination:=Range("A2"))
        .Name = "3"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = True
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .WebSelectionType = xlAllTables
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .Refresh BackgroundQuery:=False
    End With
 

Bud.boundy

XLDnaute Occasionnel
Re : Importer données depuis internet

Merci,

J'ai bien regardé les liens vers les exemples que je n'arrive malheureusement pas à adapter... j'aimerais en effet que les contenus des liens s'ouvrent dans une seule et même page à la suite des uns des autres et non dans une feuille différente...

Si quelqu'un pouvait m'aider

merci
 

Bud.boundy

XLDnaute Occasionnel
Re : Importer données depuis internet

Bonjour MJ13,

Merci de bien vouloir m'aider... Je vous joints donc un fichier avec où fonctionne actuellement la macro vers laquelle j'ai été rediriger... J'aimerais continuer à utiliser cette macro et faire que les liens hypertextes rentrés dans la colonne A en jaune soient envoyés vers la feuille données en A1 (lien n°1), A60 (lien n°2), A120 (lien n°3), etc... Actuellement ces liens sont envoyés dans la cellule A1 de chaque nouvelle feuille crééer...

Merci
 

Pièces jointes

  • A modifier.xls
    26.5 KB · Affichages: 200

Bud.boundy

XLDnaute Occasionnel
Re : Importer données depuis internet

Merci MJ13,

malheureusement je ne comprends pas ce qui a été réalisé... La macro que je postais precedemment marche mais je souhaiterais simplement l'adapter de telle façon que les liens s'affichent dans la feuille "donnée" en A1 pour le 1er lien hypertexte (A1), A100 pour le 2nd lien (A2), etc...

Merci
 

MJ13

XLDnaute Barbatruc
Re : Importer données depuis internet

Re Bonjour,

Je vois ce que tu veux faire mais, il n'y avais pas de lien dans ta feuille.

Sinon, il faudrait que tu essaies de le faire par toi même (c'est comme cela qu'on apprend).
Dans ton cas le mieux est de créer la requête sur une feuille que tu appelera requête (tu peux enregistrer les actions avec ctrl+ page up et ctrl + page down pour passer d'une page à l'autre et récupérer le code ou en sélectionnant la feuille si tu as toujours les mêmes noms de feuilles).
Ensuite, une fois la première requête effectuée, tu copies les données en valeur (voire en format dans ta feuille données). Penses à faire ctrl+end puis ctrl+gauche plusieurs fois et ctrl bas pour préparer la prochaine copie.
Puis tu vas sur ta feuille requête et tu sélectionnes tout (ctrl+shift +pause) et tu supprimes tout avec ctrl+-.
Ensuite tu vas sur ta liste de liens et tu descends (il faut enregistrer la macro en mode relatif en cliquant sur la grille de la barre d'outils arrêt).
Puis tu peux faire une boucle sur le nombre de liens qui devraient de mettre les uns en dessous des autres. Mais attention, il faut que ce soit toujours les même données à importer.

Je ne peux pas créer la macro car, cela dépend des pages que tu veux importer, de leurs dispositions...

Mais surtout n'oublies pas d'utiliser l'enregistreur de macro, sinon, c'est Misssion Impossible (D'ailleurs sur le fichier que j'ai joins auparavant, je me suis servi de la macro1 et macro2 en analysant le code pour modifier ta macro).
 

Bud.boundy

XLDnaute Occasionnel
Re : Importer données depuis internet

Merci MJ13,

Ca me semble etre bien compliqué à réaliser... Mais je vais néanmoins essayer de comprendre et d'avancer un petit peu... Mais le langage de ces boucles me parait bien délicat...

Merci pour les explications
Bonne continuation
 

Bud.boundy

XLDnaute Occasionnel
Re : Importer données depuis internet

Bonjour,

Malgré avoir suivi vos conseils et essayer d'automatiser la macro, je n'y arrive toujours pas... Pourtant je ne suis pas loin...

Comment écrire avec VBA, (VALEUR DE LA CELLULE A1) parce qu'actuellement un copier coller copie de façon radicale l'adresse mail mais je suis amené à changer la valeur de la cellule A1, la macro garde la valeur initiale... ???
- ActiveCell.FormulaR1C1 = "http:// (VALEUR DE LA CELLULE A1)"
- With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http:// (VALEUR DE LA CELLULE A1)"


PS : MJ13, je n'arrive pas à adapter votre macro alors je vous joints un fichier joint avec des exemples de d'adresses http
 

Discussions similaires

Réponses
2
Affichages
114
Réponses
30
Affichages
1 K

Statistiques des forums

Discussions
312 329
Messages
2 087 324
Membres
103 516
dernier inscrit
René Rivoli Monin