Veille technologique via Excel

Bonjour,

Je suis actuellement en stage, je suis en train de créer une base de donnée et je souhaiterais savoir s'il existe une macro pour actualiser automoatiquement mon fichier Excel via un site internet.

La base de donnée est construite via des fiches données constructeur sur internet et je souhaiterais remplir automatiquement le fichier a partie des ces fiches sur internet.

De cette base de donnée me sert de comparaison j'ai reussi a afficher les noms des objets qui respectent les intervals de tolerance et qui conviennent a cette comparaison mais je souhaiterais notamment affichier la ligne entière et je ne sais malheureusement pas le faire.

Merci de votre aide,

Hum ... je suppose que l'on ne peut pas toucher directement à la base de données et qu'il faille lire les pages web formatées.

Je n'ai pas réussi à ouvrir le site car je suppose qu'il faille donner une UserName.

Peux-tu envoyer le code source de la page web ?

Bonjour Steelson,

Voici la base de donnée que j'utilise : http://www.matweb.com/search/QuickText.aspx?SearchText=tpe

C'est donc le fiche constructeur sur cette page que je souhaite récuperer les données.

Merci

Bonjour Nhaz et Steelson,

Peux-tu expliquer un peu plus explicitement ce que tu souhaites réaliser? De l'extraction pure et simple de données des pages web etc...

Perso tu as un beau fichier mais j'ai aucune idée de ton besoin en le voyant!

Un exemple détaillé serait parfait. N'hésite pas à prendre des captures d'écran et mettre en avant les données à extraire/utiliser etc...

D'accord, ce que je souhaite exactement c'est,

Je dois récuperer pour chaque polymères dans la page web 5 caractéristiques : Hardness, Density, Tensile strenght, Elongation at break, Tear strength.

Ce sont des valeurs d'essai mécaniques sur les TPE (polymères)

Ce que je souhaiterais savoir c'est :

  • Si il est possible d'extraire la valeur de Hardness par exemple a partir du code souce de la page internet.
  • Ensuite la mettre dans Excel et effectuer l'opération de comparaison.

Je ne peux expliquer la raison de la comparaison car je suis sous clause de confidentialité.

Jusqu'a maintenant j'ai rentré les valeurs "à la main" ce qui est long et fastidieux mais pas infaisable. Ce que je voudrais c'est que au cas ou un nouveau TPE est enregistré, les valeurs des critères soit automatiquement mis à jour.

J'espère que c'est clair,

Merci pour votre aide.

Bon, un début ... il me reste à décortiquer la source obtenue !

60materiaux-web.xlsm (20.86 Ko)

Il te faut Re ou Rm pour la résistance? (limite élastique ou mécanique)

Il te faut dans quelles unités les dimensions?

Comment comptes-tu gérer ce genre de données? densité entre 0.870 et 11.0 g/cc par exemple?

J'ai testé ton fichier Steelson, sans succès malheureusement.

Pour la récupération des données, je procède de cette manière:

Sub test()

Set request = CreateObject("microsoft.xmlhttp")
Dim URL As String
Dim doc As New HTMLDocument

URL = "http://www.matweb.com/search/DataSheet.aspx?MatGUID=2f57f75f8afa43e39ece09ab127bd0f5"
request.Open "POST", URL, False
request.setRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
request.setRequestHeader "Accept-Language", "fr-FR"
request.setRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)"
request.setRequestHeader "Accept-Encoding", "gzip, deflate"
request.setRequestHeader "Host", "http://www.matweb.com/"
request.setRequestHeader "DNT", 1
request.setRequestHeader "Connection", "Keep - Alive"
request.send

doc.body.innerHTML = request.responseText

Dim listeProprietes As IHTMLElementCollection
Set listeProprietes = doc.getElementsByTagName("tr")

Dim Densite As String, DureteA As String, TensileStr As String, ElongationMax As String, TearStr As String, DureteD As String

Dim i As Integer
For i = 0 To listeProprietes.Length - 1
    If InStr(listeProprietes.Item(i).innerText, "Density") > 0 Then
        Densite = listeProprietes.Item(i).all.Item(1).innerText
    ElseIf InStr(listeProprietes.Item(i).innerText, "Hardness, Shore A") > 0 Then
        DureteA = listeProprietes.Item(i).all.Item(1).innerText
    ElseIf InStr(listeProprietes.Item(i).innerText, "Hardness, Shore D") > 0 Then
        DureteD = listeProprietes.Item(i).all.Item(1).innerText
    ElseIf InStr(listeProprietes.Item(i).innerText, "Tensile Strength, Ultimate") > 0 Then
        TensileStr = listeProprietes.Item(i).all.Item(1).innerText
    ElseIf InStr(listeProprietes.Item(i).innerText, "Elongation at Break") > 0 Then
        ElongationMax = listeProprietes.Item(i).all.Item(1).innerText
    ElseIf InStr(listeProprietes.Item(i).innerText, "Tear Strength") > 0 Then
        TearStr = listeProprietes.Item(i).all.Item(1).innerText
    End If
Next i
Set request = Nothing
End Sub

Ce code fonctionne, il suffira de transformer l'URL en paramètre de la procédure, et ensuite de traiter les informations (extraire les marges, les unités etc...)

Re à tous,

En ce qui concerne la resistance il me faut la resistance élastique à la rupture. Les unités des pages internet me conviennent c'est a dire en MPa pour la résitance.

Lorsque les constructeurs mettent plusieurs valeur de densité par exemple, cela veut dire que ce n'est pas un polymère spécifique mais une gamme ce qui ne m'interesse pas car la comparaison perdrais tout son sens.

De même pour moi Steelson, impossible d'actualiser la liste.

Je ne sais pas si cela est faisable et mes connaissances sont peu approfondies en Excel mais voici mon idée :

Une boucle pour chaque page internet (comprennant 50,100 ou 200 polymères)

Une boucle pour ouvrir chaque fiches techniques

récupération de données souhaitées

et au final le transfert vers Excel.

Voila merci de votre intérêt pour mon sujet.

Re d3d9x,

Je viens d'essayer ton code que j'ai intégré dans une macro (je le précise car je suis novice alors j'y vais un peu à l'aveugle).

Cela ne fonctionne pas : "Erreur de compilation, Type définit pas l'utilisateur non défini"

Il doit avoir surement une manip à faire mais je suis passé à coté.

Merci

La résistance élastique à la rupture? La limite élastique? La résistance mécanique?

Tu veux quoi? Quand ça devient un comportement plastique ou quand ça casse? xD

Je suis pas un expert en polymères, mais la résistance élastique à la rupture, j'ai un doute!!

Pour récupérer toute une base de données, bof bof....

Encore tu récupères 10-20 trucs ok, mais là tu comptes tout récupérer? :/

EDIT: Oui il faut activer des références pour que mon code fonctionne. et de toute façon même si le code fonctionnait, il ne t'afficherait rien

Oui pardon petit lapsus : la résistance en traction à la rupture.

aaaah d'accord, il me semble que je vais devoir continuer comme ça en reduisant le domaine de recheche


C'est la resistance à la rupture que j'utilise comme critère. Désolé de ce petit lapsus

Bon et bien je vais continuer comme ça en réduisant le domaine de recheche.

Merci bcp !

Bah si tu pouvais éviter de copier toute leur BDD ça serait aussi bien ^^

Voilà un ptit truc à te mettre sous la dent en attendant.

25nhaz.xlsm (47.34 Ko)

Suffit de naviguer sur la page du polymère, et cliquer pour visualiser les données.

Oui ça serait pas mal, mais bon ça sert à ça les stagiaires (esclavage).

Super merci beaucoup, ça va m'éviter les maux de têtes à force de lire les trucs minuscules.

Wahou d3d9x ... intéressant.

@Nhaz : as-tu lancé le fichier que je t'ai posté ? et as-tu reçu le code en msgbox ?

Du coup, dois-je poursuivre dans la voie que j'explore ?

De mon côté je vais regarder de près ce que d3d9x a fourni !

Si tu veux des explications sur mon code, n'hésite pas à me MP Steelson

Et pour complément de travail j'utilise la console de Google Chrome pour coder ce genre de choses

Un essai dans une version proche de ce que je faisais avec Konfabulator !

17materiaux-web.xlsm (19.21 Ko)

d3d9x a écrit :

Si tu veux des explications sur mon code, n'hésite pas à me MP Steelson

Merci

  • j'ai finalisé la version que j'avais commencée
  • maintenant je vais voir ce que tu proposes de façon plus professionnelle (après mon voyage en Suisse))

J'ai complété des paramètres recherchés ...

15materiaux-web.xlsm (20.67 Ko)

Salut,

Merci pour ton aide Steelson, ca marche nickel pour le moment je vais essayer d'étendre la base de donnée avec cette méthode.

C'est vraiment impréssionant ce qu'on peut faire avec cet outils.

Avec récup des unités

je poursuis encore ...

11materiaux-web.xlsm (52.62 Ko)

Et une toute autre façon de faire ...

Rechercher des sujets similaires à "veille technologique via"