ranger mes webtables ...

fifi56

XLDnaute Junior
bonjour ,

je souhaite extraire plusieurs choses d'une page internet

dans un premier tps
- je souhaite extraire 3 web table mettre la 1 ere en a2 , la seconde en d2 ,la 3 imie en g2




et j'aimerai ensuite tjs dans cette meme page extraire le nombre de d'invite !
find et instr ( doivent pouvoir faire l'affaire ? )


( est ce possible sans recharger la page a chaque fois ? )

ci joint un fichier avec des macros



en gros ma question est >>

est il possible d'extraire et de ranger differente webtables dans des zones prédéfini et egalement de rechercher et extraire une donnee d'un page web en ne chargeant la page web que 1 seule fois !
 

Pièces jointes

  • webtable.xlsm
    41 KB · Affichages: 30

PMO2

XLDnaute Accro
Re : ranger mes webtables ...

Bonjour,

Une piste avec
Code:
Sub aa()
Dim S As Worksheet
Dim QT As QueryTable
Dim i&
Dim Rdestination As Range
Dim MaConnection As String
Dim MesPages As Variant
'---
Set S = ActiveSheet
S.Cells.Delete
'---
Set Rdestination = [a1]
MaConnection = "URL;http://www.excel-downloads.com"
MesPages = Array(20, 23, 27)
'---
For i& = LBound(MesPages) To UBound(MesPages)
  Set QT = ActiveSheet.QueryTables.Add(Connection:=MaConnection, Destination:=Rdestination)
  QT.WebTables = CStr(MesPages(i&))
  QT.Refresh BackgroundQuery:=False
  QT.Delete
  Set Rdestination = S.Cells(1, S.UsedRange.Columns.Count + 2)
Next i&
End Sub
 

fifi56

XLDnaute Junior
Re : ranger mes webtables ...

je finalise mon fichier et je suis a la chasse au kiloctets et a la rapidité

bien que ce bout de code fonctionne parfaitement ( il n'es pas un foudre de guerre en vitesse )

donc je cherche une nouvelle solution
j'ai tjs la même problématique 3 webtables a mettre dans des colonnes différentes

si j'effectue une boucle (3 fois ) pour la destination , je charge 3 fois la meme page web ( perte de tps )

donc je pensais importer toutes les webtables de la page ( allwebtables ) avec QueryTables.Add donc je ne charge la page que 1 seule fois et je ne me souci pas dans un premier tps du rangement des webtables en colonne

Exel peut il reconnaitres les differentes webtables importés ?

si oui dans ce cas il me suffirait de lui dire prendre la webtable 20 et affiche la en colonne D
prend la webtable 23 et affiche en colonne h

sinon comment dire a excel quels sont les bornes de la webtable ( sachant que celle ci peut bien entendu être variable )
 

PMO2

XLDnaute Accro
Re : ranger mes webtables ...

Bonjour,

Essayez le code suivant qui ne fait qu'une seule connexion à la page Web
Code:
Sub bb()
Dim S As Worksheet
Dim QT As QueryTable
Dim i&
Dim MaConnection As String
Dim MesPages As Variant
Dim var()
Dim Deb&
Dim Fin&
Dim R As Range
'---
Set S = ActiveSheet
S.Cells.Delete
'---
MaConnection = "URL;http://www.excel-downloads.com"
MesPages = Array(20, 23, 27)
'---
Set QT = ActiveSheet.QueryTables.Add(Connection:=MaConnection, Destination:=Range("$A$1"))
For i& = LBound(MesPages) To UBound(MesPages)
  QT.WebTables = CStr(MesPages(i&))
  QT.Refresh BackgroundQuery:=False
  '---
  ReDim Preserve var(0 To i&)
  var(i&) = ActiveSheet.UsedRange
Next i&
'---
S.Cells.Delete
Deb& = 1
For i& = LBound(var) To UBound(var)
  Fin& = Fin& + UBound(var(i&), 2)
  Set R = S.Range(S.Cells(1, Deb&), S.Cells(UBound(var(i&), 1), Fin&))
  R = var(i&)
  Deb& = Fin& + 1
Next i&
End Sub
 

fifi56

XLDnaute Junior
Re : ranger mes webtables ...

bonjour

merci pour cette solution mais elle ne convient pas non plus

du coup j'ai opter pour un changement radical
je vais charger la page en entier une seule fois ( méthode traditionnel )

je vais ensuite chercher les lignes vide pour definir les plages de mes tableaux
et ensuite une fois la plage sélectionne je deplace la plage vers la droite


Do While Not (IsEmpty(ActiveCell))
nbligne = nbligne + 1
Selection.Offset(1, 0).Select
Loop
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 767
Membres
103 662
dernier inscrit
rterterert