Macro Excel 2003 donnees web plusieures pages
Bonjour je souhaite obtenir de l'aide de quelqu'un de calé en macro excel pour me corriger une macro que j'ai fait.
J'ai fait un début de travail déjà avec de la reflexion mais je bloque a un moment car la macro me colle les résultats d'une manière bizarre sur une feuille excel et a la suite par colonne.
En fait je souhaite récupérer les votes que j'ai reçu sur mes pages de votes de mon compte ebay pour les analyser ensuite
Les champs (nom d'objet, prix, vote recu, pseudo acheteur etc ...)
Si j'ai tout qui s'importe a la limite c'est pas grave ensuite il suffit de faire du tri dans les donnees recuperees, mais encore faut-il qu'elles se recuperent correctement
Je joint mon travail par le fichier excel joint en feuille 1 il y a une liste de toutes les URL dont on a besoin mais la macro que j'ai fait ne s'en sers pas
et la macro est dans le fichier excel j'ai fait une incrementation avec le caractere i.
je souhaite que tout se mette à la suite en bas sur la meme feuille...
Si quelqu'un peut m'aider c'est gentil de sa part
(il y a 44 pages je crois)
voici le texte de ma macro presente dans le fichier :
Sub Macro1()
'
' Macro1 Macro
'
Range("A1").Select
For i = 1 To 44
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://feedback.ebay.fr/ws/eBayISAPI.dll?ViewFeedback2&ftab=AllFeedback&userid=chyntoc&iid=-1&de=off&items=25&interval=0&mPg=44&page=" & i, _
Destination:=Range("A1"))
.Name = _
"eBayISAPI.dll?ViewFeedback2&ftab=AllFeedback&userid=chyntoc&iid=-1&de=off&items=25&interval=0&mPg=44&page=" & i
.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 i
End Sub
Bonsoir,
Tu peux modifier la macro comme suit :
Sub Macro1()
Worksheets("Feuil3").Activate
For i = 1 To 44
k = (i * 200) - 199
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://feedback.ebay.fr/ws/eBayISAPI.dll?ViewFeedback2&ftab=AllFeedback&userid=chyntoc&iid=-1&de=off&items=25&interval=0&mPg=44&page=" & i, _
Destination:=Range("A" & k))La suite sans changement...
Les données s'inscrivent dans la Feuil3 (une page toutes les 200 lignes)
Compter environ 6 minutes pour les 44 pages. (avec Excel 2010)
A+
Alors là Merci beaucoup Galopin !!!
Bien joué le coup de (i*200)-199 !!!
et je fait de tout caler sur worksheet 3 !!
Ok, je me permet d'abuser un peu ...
Est-il possible de ne récupérer que les éléments de la table voulue (c'est a dire uniquement la partie de Table ou il y a les votes par objet avec prix et pseudo acheteurs ?)
Par données externes quand on le fait sur une requete d'une seule page on peut selectionner la table...
mais pour la macro je ne sais pas ..
exemple le jour ou si je devais avoir 500 pages ... 500 fois 200 lignes je depasse les 65000 ligne de la feuille 3.
si je concentre la recupération des 75 lignes par page qui ne concernent que les votes et pseudos et prix... j'ai plus de place sur la feuille et cela simplifie le tri futur des données..le but ensuite etant de faire un tableau (Nom d'objet/vote/prix/pseudo).
Le tableau peut se faire ensuite par des copier couper coller et transposé et recherche et remplace etc... facilement par des combines excel mais avec les donnees voulues cela irai plus vite que de supprimer a chaque fois des lignes en haut et en bas ...
J'ai cherché un peu...il me semble qu'il faut rajouter un argument de "Table = ???" ??
je réenregistre l'excel avec un exemple en page 4 de ce que je souhaiterai que cela fasse sur deux pages ...
Si vous pouvez m'aider à améliorer cette macro un peu...merci beaucoup d'avance ...
Chyntoc
Bonsoir,
Je n'ai pas trop compris tes explications mais voici une macro à lancer après l'importation qui devrait faire le plus gros du boulot.
Sub galopin()
i = Cells(65535, 1).End(xlUp)(2).Row
If Left(Cells(i, 1), 9) = "Copyright" Then
Do
If Cells(i, 1) = "Objets par page :" Then Y = True
Rows(i).Delete: i = i - 1
Loop Until Y
Y = False
End If
On Error GoTo FIN
For ii = i To 1 Step -1
If Cells(ii, 1) = "Période : Date de début de la période d'évaluation" Then
Do
If Cells(ii, 1) = "Objets par page :" Then Y = True
Rows(ii).Delete: ii = ii - 1
Loop Until Y
Y = False
End If
Next
FIN:
For i = 3515 To 2 Step -1
If Left(Cells(i, 1), 9) = "Evaluation/Objet" Then Rows(i).Delete
k = WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 10)))
If k = 0 Then Rows(i).Delete
Next
End SubA+
Super Galopin merci encore je vais essayer.
en fait pour reexpliquer simplement...
je cherche a importer uniquement la table centrale ou il y a les votes / objets prix et pseudos des acheteurs ...etc..
ca fait des lignes en moins d'importées et plus simple pour trier ensuite
Si je devais importer 500 pages de votes cela ne rentrerai pas sur une feuille de 65000 lignes
en recuperant a chaque fois que les 75 lignes centrales ca réduit un peu le tri d'apres ...
merci a vous..
amitiés chyntoc
Bonjour
Juste pour le sport
Mais toutes les pages ne sont pas identiques donc à bien vérifier le résultat
Un magicien vous etes !!!!!!!!!!!
je m'incline devant le résultat
MERCI
moi qui pensait avoir encore des combines à faire encore derrière pour trier ...