Vba+extraction donnees site internet | ||
---|---|---|
Inscription: 03/11/2011
Messages:
2
Système d'exploitation: PC Version Excel utilisée: excel 2000 |
Posté le : 29-11-2012 21h00
Bonjour,
J'aurais besoin d'un sérieux coup de main. Je suis en train de créer un module pour ma société qui récupère des données depuis le site internet d'un fournisseur car celui-ci ne peut pas nous envoyer ces données avec son flux produit. Pour faire simple, via un fichier excel et du code vba je vais récupérer le fichier sur un serveur. Ensuite je vais récupérer sur le site du fournisseur avec un identifiant et un mot de passe les frais de port et les garanties qui manquent au fichier. Une fois cela fait, j'applique une marge et je renvoie le fichier traité et sauvegardé sur le serveur. Tout cela fonctionne très bien sauf que le fichier doit traiter entre 3000 et 4000 références et que cela prend énormément de temps : entre 3 et 4 heures. J'aimerais donc savoir si il est possible d'avoir une méthode plus rapide pour récupérer les données? Si on peut ouvrir plus de pages internet explorer pour récupérer plus de données plus rapidement? Si on peut créer une requete malgré le fait que je n'ai pas l'url de la page? J'aimerais tout simplement savoir si il existe une solution à mon problème? D'avance merci si vous avez une solution que je pourrais développer. Eideal |
|
|
Re: Récupération de données sur le web | ||
---|---|---|
Inscription: 03/11/2011
Messages:
2
Système d'exploitation: PC Version Excel utilisée: excel 2000 |
Posté le : 03-11-2011 14h06
Bonjour,
Je reviens vers vous au sujet de la recuperation de données sur le web. Je suis en train de créer un fichier comparatif car pour le travail, je dois comparer tous les jours de nombreux produits. Pour cela, je compare chez icomparateur mais je n'arrive pas à récupérer le PRIX TTC. J'ai modifié le code initial mais j'aimerais qu'il m'indique le PRIX D'ACHAT TTC avec 2 chiffres après la virgule. Le fichier me récupère bien le PRIX HORS TAXE et les FRAIS DE PORT : Dim vUrl As String, T As String Dim L As Long, Lmax As Long Application.ScreenUpdating = False Set IE = CreateObject("internetExplorer.Application") 'afficher IE IE.Visible = True With Sheets("www.i-comparateur.com") 'ici : 6 =F Lmax = .Cells(.Rows.Count, 6).End(xlUp).Row 'debut de la ligne : ici ligne 5 For L = 5 To Lmax Application.StatusBar = (L - 4) * 100 \ (Lmax - 4) & "%... " & .Cells(L, 2).Text 'URL 'ici : 6 =F vUrl = .Cells(L, 6).Text 'Ouvre la page web dans IE de façon invisible IE.Navigate vUrl Do Until IE.ReadyState = READYSTATE_COMPLETE DoEvents Loop T = IE.Document.body.innerText 'PRIX D'ACHAT .Cells(L, 3).Value = Val(Mid(T, InStr(1, T, "En stock") + 8)) 'FRAIS DE PORT .Cells(L, 4).Value = Val(Mid(T, InStr(1, T, "+ port : ") + 9)) Next L End With 'Quitter IE IE.Quit Set IE = Nothing Application.StatusBar = False Application.ScreenUpdating = True MsgBox "Mise à jour effectuée !", vbInformation + vbOKOnly End Sub mais j'aimerais savoir si dans le code on pourrait récupérer le TTC sachant qu'en plus le produit n'est pas toujours "en stock" j'ai pensé à récupérer le FRAIS DE PORT, à faire ensuite un NBCAR pour avoir le nombre de lettres et à récupérer le texte après les frais de port mais ça ne fonctionne pas. je ne vois pas d'autres solutions à mon problème, pouvez vous m'aider s'il vous plait car je n'avance pas et je gagnerais énormément de temps? je vous joint en pièce jointe mon fichier. en beaucoup moins urgent, j'ai 2 autres petites questions, voir si c'est possible ou non : - avons nous également la possibilité de remonter le NOM DU SITE où le produit est le moins cher? - Pouvons nous faire cette extraction pour les 3 premiers sites ou c'est trop complexe? Cordialement. Eideal44 |
|
|