[Catégorie modifiée .Net -> VBA] rechercher valeurs dans un document txt pour le

Signaler
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012
-
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012
-
Salut à tous!

A partir d'une cellule excel, j'aimerais faire une recherche dans un document txt, copier une valeur et la coller dans une autre cellule excel.

Mon document txt contient une page html que j'ai téléchargée. Cette page présente un tableau dans lequel se trouve l'information qui m'intéresse.

J'ai réussi à télécharger la page grâce aux instructions décrites sur ce site (4)http://jacxl.free.fr/cours_xl/cours_xl_jac.html#ouvrir_web.malheureusement je ne vois pas comment exécuter la fonction find et effectuer mes recherches :s (et il paraît que c'est simple...) J'ai visité pas mal de sites sans trouver d'exemple qui collait parfaitement.

Merci d'avance pour vos réponse^^

Medo

10 réponses

Messages postés
33123
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
351
Bonjour,

Su le site que tu donnes dans ton commentaire, il fait pourtant référence a la méthode find.

Quel est ton souci exactement ?

Sous quel forme se présente tes données ?
Où se trouve la valeur à chercher ( par exemple elle est à droite de la valeur : toto... )

Qu'as tu commencé à écrire comme code ?


PS: attention, ton sujet concerne du VBA, pas du VB.net


PS² : Une façon d'ecrire et d'utiliser la methode Find :
Dim valCherch as string
valCherch ="Mot_Cherché"
Set vc = Cells.Find(what:=valCherch, lookAt:=xlWhole, After:=ActiveCell, SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookIn:=xlValues, MatchCase:=False, SearchFormat:=False)
If Not vc Is Nothing Then
  VcCol = vc.Column 'N° de colonne où se trouve la valeur cherchée
  VcLig = vc.Row    'N° de ligne où se trouve la valeur cherchée
End If




Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

Merci pour ta réponse Jordane!

Su le site que tu donnes dans ton commentaire, il fait pourtant référence a la méthode find.


oui il y fait référence mais je ne vois pas comment m'en servir je débute :)

Sous quel forme se présente tes données ?


Mes données téléchargées se présentes de la façon suivante
...le 31 oct. 2011</td><td class="yfnc_tabledata1" align="right">2,02</td><td class="yfnc_tabledata1" align="right">2,04</td><td class="yfnc_tabledata1" align="right">1,99</td><td class="yfnc_tabledata1" align="right">1,99</td><td class="yfnc_tabledata1" align="right">22 093 000</td><td class="yfnc_tabledata1" align="right">1,99</td></tr><tr><td class="yfnc_tabledata1" nowrap align="right">...

Je télécharge entièrement la page du site et la mets dans un document txt.

Quel est ton souci exactement ?


J'aimerais par exemple trouver la valeur "2,02" qui se situe à droite de "le 31 oct 2011" juste après "</td><td class="yfnc_tabledata1" align="right">" et la coller dans une cellule excel.

Medo
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
Salut !

Une fois le fichier chargé dans une feuille,
voici un exemple pour extraire la valeur après le premier "right"> :
Function FindAfter()
    T = """right"">"
    R = Cells.Find(T, MatchCase:=True)
    If R > "" Then FindAfter = Mid(R, InStr(R, T) + Len(T), 4)
End Function


Sub Test()
    [D11] = FindAfter
End Sub


___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

Merci MarcPl j'essaie ça et je vous dis ce que ça donne!^^
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

En fait j'aimerais faire la recherche directement dans le document txt qui se trouve par exemple sur mon bureau. Je ne vois pas comment faire grâce à ce que tu m'as donné :s. J'ai ajouté au début une fonction pour ouvrir mon document mais ça ne fonctionne pas, je m'y prends mal...
Sub open9()
Open "C:\Users\Medo\Desktop\rien2.txt" For Output As #1
End Sub
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

personne?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour
Ouvre vite ton aide VBA sur l'instruction Open
1) Il ne suffit pas d'ouvrir ! Il faut ensuite lire (et tu as des exemples dans ton aide)
2) tu as de surcroît ouvert et n'as pas fermé ! Ca craint, maintenant !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Après avoir moi-même ouvert cette aide, je préfère t'inviter à l'ouvrir sur Line Input et lire l'exemple qui vient avec (plus clair).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
En fait la qualité de la réponse reflète celle de la question, surtout lorsqu'elle est imprécise !

Sinon Excel peut s'occuper de charger une page web dans une feuille,
pas forcément besoin de passer par un fichier intermédiaire ...
C'est bien plus pratique alors pour récupérer des données !
Voir alors du côté du menu Données, Données externes, Nouvelles requêtes sur le Web ...

J'utilise cette méthode pour une application monétaire par exemple, la page web est donc chargée
directement dans une feuille d'Excel associée à une plage réservée.

Excel gardant dans une plage ainsi créée les propriétés de connexion à la source web,
il ne restera alors à créer dans la feuille un bouton déclenchant l'actualisation de cette plage
associé à un code VBA dans lequel figurera un Refresh de cette QueryTable.

Alors tu pourras te pencher sur la méthode pour copier les données dans d'autres cellules ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
16
Date d'inscription
lundi 2 janvier 2012
Statut
Membre
Dernière intervention
5 mai 2012

Super! c'est exactement ce que je voulais faire. Pourquoi se compliquer la vie?! Merci à tous pour vos réponses
A bientôt
Mehdi