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

Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012 - 13 janv. 2012 à 18:15
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012 - 15 janv. 2012 à 13:33
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

jordane45 Messages postés 37738 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 octobre 2023 342
13 janv. 2012 à 18:51
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
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
13 janv. 2012 à 19:10
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
0
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
13 janv. 2012 à 23:00
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 !
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
14 janv. 2012 à 14:35
Merci MarcPl j'essaie ça et je vous dis ce que ça donne!^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
14 janv. 2012 à 15:26
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
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
14 janv. 2012 à 20:56
personne?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
14 janv. 2012 à 21:04
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
14 janv. 2012 à 21:10
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
0
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
14 janv. 2012 à 23:55
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 !
0
Medorico Messages postés 16 Date d'inscription lundi 2 janvier 2012 Statut Membre Dernière intervention 5 mai 2012
15 janv. 2012 à 13:33
Super! c'est exactement ce que je voulais faire. Pourquoi se compliquer la vie?! Merci à tous pour vos réponses
A bientôt
Mehdi
0
Rejoignez-nous