requête donnée externe à partir d'un lien hypertexte

domexcel35

XLDnaute Nouveau
bonjour,

je suis nouveau sur le forum et novice en matière d'excel
j'aurai besoin d' aide pour la création d'un fichier excel:

ce fichier contient une 1ère page nommée "lien" ou:

en a1: se trouve un lien hypetexte: http:// lien1
en a2: se trouve un lien hypetexte: http:// lien2
en a3: se trouve un lien hypetexte: http:// lien3
........
en a20: se trouve un lien hypetexte: http:// lien20

je voudrai qu'ensuite, pour chaque lien, une page se "créait" avec la donnée externe (requête)du lien (en a1):

en page nommée "page 1" ...........donnée externe du lien 1
en page nommée "page 2" ...........donnée externe du lien 2
en page nommée "page 3" ...........donnée externe du lien 3
........
en page nommée "page 20" ...........donnée externe du lien 20

j'ai cherché sur le forum et j'ai rien trouvé pour résoudre mon problème...
j'ai essayé via les données externes...mais, il faut tappez à chaque fois le lien hypertexte...je voudrai que ça se fasse automatiquement...

d'une part, je sais pas si je me suis bien expliqué ...d'autre part, je sais pas si ma "requete" est réalisable....merci de bien vouloir m'éclairer...
merci d'avance

cordialement
dom
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : requête donnée externe à partir d'un lien hypertexte

Bonjour DomExcel35 et bienvenue :),
Nous ne sommes que des bénévoles, avec évidement d'autres activités à l'emploi du temps, donc moins de 24h sans réponse, ce n'est pas encore alarmant, mais un petit Up comme tu viens de faire est généralement efficace.
En général, je ne répond pas sur un post où rien n'est commencé. Donc pour te mettre sur la voie, il suffisait d'enregistrer avec l'enregistreur de macro, tu aurais obtenu ce code
Code:
Sub Macro1()
'
' Macro1 Macro
'
'
    With [COLOR=red][B]ActiveSheet[/B][/COLOR].QueryTables.Add(Connection:= _
        "URL;[COLOR=red][B]http://www.excel-downloads.com/forum[/B][/COLOR]", Destination:=Range("$A$1"))
        .Name = "forum"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
où il faut s'arranger pour que l'ActiveSheet soit une nouvelle feuille, et récupérer l'adresse dans ta cellule pour modifier le lien.
Si tu n'est pas en 2007, n'hésite pas à réenregistrer la macro, il peux y avoir des différences dans le code.
Une fois que tu auras un peu avancé, reviens vers nous si tu ne trouves pas.
Bon courage :cool:
 

domexcel35

XLDnaute Nouveau
Re : requête donnée externe à partir d'un lien hypertexte

oups!!!, au temps pour moi...
en tout cas merci pour beaucoup pour la réponse.
comme je l'ai dit , je suis novice en excel...je vais regarder et essayer ce que tu m'a dit
"c'est en faisant... que l'on apprend"

merci
 

domexcel35

XLDnaute Nouveau
Re : requête donnée externe à partir d'un lien hypertexte

voilà...j'ai mis mon fichier en exemple...
j'ai ma 1ère page nommée "lien"
ou se trouvent dans les cellues A1 à A20 .....des "données"

grâce aux recherches sur ce site, j'ai réussi a trouver une macro pour extraire
le lien hypertexte de ces données (en B1 à B20)...:)

et c'est donc ces liens que je voudrais "exploiter" en faisant une requête web
pour chaque lien sur une nouvelle page (une page par lien) comme expliquer dans mon 1er message.

j'ai beau "triturer" ta macro dans tous les sens...je suis inccapable
d'en ressortir quelquechose!!! (novice*)...:(

besoin d'aide...:rolleyes:...merci
 

Pièces jointes

  • fichier.xls
    21 KB · Affichages: 90
  • fichier.xls
    21 KB · Affichages: 99
  • fichier.xls
    21 KB · Affichages: 100

JNP

XLDnaute Barbatruc
Re : requête donnée externe à partir d'un lien hypertexte

Re :),
A un cheval près :D...
Bon WE :cool:
 

Pièces jointes

  • fichier(1).xls
    34.5 KB · Affichages: 90
  • fichier(1).xls
    34.5 KB · Affichages: 95
  • fichier(1).xls
    34.5 KB · Affichages: 93

domexcel35

XLDnaute Nouveau
Re : requête donnée externe à partir d'un lien hypertexte

petite modif...:rolleyes:

je voudrai que les nouvelles pages se nomment "feuil1...feuil2....à....feuil20"
et déjà existantes (avant de lancer la macro)...voir fichier exemple
et non avec le nom du "lien"...car je voudrai pouvoir créer une page "récupération des données" ou je fais un copier/coller des "feuil1 à feuil20"

possible???

cordialement

le novice...
 

Pièces jointes

  • fichier(2).xls
    33.5 KB · Affichages: 84
  • fichier(2).xls
    33.5 KB · Affichages: 86
  • fichier(2).xls
    33.5 KB · Affichages: 86
Dernière édition:

JNP

XLDnaute Barbatruc
Re : requête donnée externe à partir d'un lien hypertexte

Re :),
Pas très logique mais possible
Code:
Sub ExtractionLiensHypertextes()
Dim Cell As Range, I As Integer
I = 1
For Each Cell In Range("A1:A" & Range("A65536").End(xlUp).Row)
Worksheets.Add
ActiveSheet.Name = "Feuil" & I
I = I + 1
With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & Cell.Hyperlinks(1).Address, Destination:=Range("$A$1"))
        .Name = Split(Cell.Hyperlinks(1).Address, "/")(UBound(Split(Cell.Hyperlinks(1).Address, "/")))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Next Cell
End Sub
Bonne soirée :cool:
 

domexcel35

XLDnaute Nouveau
Re : requête donnée externe à partir d'un lien hypertexte

ça me creait une "FEUIL21" et après ça me donne une erreur.... "impossible de créer une page déjà existante..."
???

Code:
Sub ExtractionLiensHypertextes()
Dim Cell As Range, I As Integer
I = 1
For Each Cell In Range("A1:A" & Range("A65536").End(xlUp).Row)
Worksheets.Add
[COLOR="red"][B]ActiveSheet.Name = "Feuil" & I[/B][/COLOR]
I = I + 1
With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;" & Cell.Hyperlinks(1).Address, Destination:=Range("$A$1"))
        .Name = Split(Cell.Hyperlinks(1).Address, "/")(UBound(Split(Cell.Hyperlinks(1).Address, "/")))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Next Cell
End Sub
 

domexcel35

XLDnaute Nouveau
Re : requête donnée externe à partir d'un lien hypertexte

ok, j'ai compris!!!, il fallait pas que je creais déjà les feuilles ..."feuil1...feuil2....à....feuil20"et la macro marche!!!....merci

le problème, c'est qu'après, comme je voulais récupérer les données de chaque feuilles sur la feuille "récupération des données" via "coller avec liaison"....exemple: "coller avec liaison la cellule a1 de la feuil1 sur cellule a1 de récupération avec liaison"

comment faire car ces feuilles n'éxistent pas au départ...je peux pas renvoyer une liaison à une feuille qui n'est pas encore crée???

je sais pas si je suis clair....déjà, en tout cas, merci de ton aide!!!
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : requête donnée externe à partir d'un lien hypertexte

Re :),
le problème, c'est qu'après, comme je voulais récupérer les données de chaque feuilles sur la feuille "récupération des données" via "coller avec liaison"....exemple: "coller avec liaison la cellule a1 de la feuil1 sur cellule a1 de récupération avec liaison"
comment faire car ces feuilles n'éxistent pas au départ...je peux pas renvoyer une liaison à une feuille qui n'est pas encore crée???
Le problème, c'est qu'en fonction de la page web, tes données ne seront pas forcément toujours au même endroit :p... Donc ta liaison de toute façon ne sera pas correcte. Conclusion, il faut que tu développes en macro une recherche qui s'effectuera après l'import pour ramener tes données ;).
D'où ma remarque du post précédent : pas logique :D.
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 036
Membres
104 010
dernier inscrit
Freba