Extraire du texte d'un fichier txt

Résolu
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006 - 23 nov. 2006 à 10:32
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 20 févr. 2015 à 06:22
bonjour à tous

je ne suis pas tres expérimenté en VBA excel, mais je souhaiterais faire ceci :

- j'ai un fichier texte "test.txt" contenant qqchose de ce type :
"blabla 123456 azerty"

- j'aimerais extraire de ce fichier le texte contenu entre "blabla" et "azerty" : soit "123465" et le placer dans une cellule excel

ca parait simple expliqué comme ca, mais pour un debutant, c'est pas si évident que ca

merci à celles et ceux qui pourraient m'aider dans cette recherche

A bientot

Cruzy

37 réponses

cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 15:36
faut vraiment que je me remette aux bases alors, parce que je ne sais meme pas ce que c'est qu'un userfrom .... :(
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 15:49
tu ouvres excel
alt+F11 pour ouvrir VBA
menu insertion > userform

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 15:50
ou tout simplement mets un bouton sur une feuille excel

 Drikce 06
0
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 16:11
bah y'en a qu'on de la patience : merci Drikce 06

j'ai reussi à creer ce bouton, et a faire fonctionner le bidulle

ca me sort une boite de dialogue qui me dis ligne par ligne ce que j'ai ecrit dans chaque ligne

ce que je voulais c'est qu'il me cherche une chaine de caractere compris entre 2 autres chaines dont je connais les valeurs et qu'il me retourne cette chaine de caractere dans une cellule

y'a encore bcp à faire ?

merci
0

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

Posez votre question
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 16:17
Est ce que tu sait à quel ligne est cette chaine?

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 16:18
Ou il y a t'il quelque chose de spécifique pour la caractériser par rapport aux autres lignes?

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 16:18
Plus simple met les lignes de ton fichier texte ici et met en rouge ce que tu veux récupérer!

 Drikce 06
0
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 16:31
ok merci : voici le texte :

"


  MACRO KCOLL ESTIMATOR
  ----------------------------


   best results are obtained with discarding 3 batches


  number of batch used: 47  keff <gras>7.796142e-01  sigma 1.953726e-03</gras>  sigma% = 2.506016e-01


 simulation time (s) : 738


 Type and parameters of random generator at the end of simulation:
  DRAND48_RANDOM 34506 53323 59971

"

le probleme c'est que le nombre de lignes avant ce que j'ai ecrit varie d'un fichier à un autre (ce qui ne varie pas en revanche, c'est le nombre de ligne qu'il y a apres ce qu'il y a en rouge, donc on peut compter les ligne à partir de la fin)

merci encore
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 16:50
Dim NbLignes As Integer


Private Sub CommandButton1_Click()


Dim TaString As String
Dim TaString1 As String
Dim TablString()
Dim TablString1() As String
Dim keff As String
Dim sigma As String


compte_ligne ("C:\Analyse.txt")


Open "C:\Analyse.txt" For Input As #1


ReDim Preserve TablString(NbLignes)


For i = 1 To NbLignes
Line Input #1, TaString
TablString(i) = TaString
Next i


Close #1


For i = 1 To NbLignes


If Left(TablString(i), 21) = "number of batch used:" Then
TaString1 = TablString(i)
TablString1 = Split(TaString1, " ", -1, vbTextCompare)
keff = TablString1(6) & TablString1(7) & TablString1(8)
sigma = TablString1(10) & TablString1(11) & TablString1(12)
End If


Next i


MsgBox (keff & Chr(10) & sigma)


End Sub


Sub compte_ligne(Chemin_complet As String)


Open Chemin_complet For Input As #1


NbLignes = 0


While Not EOF(1)
Line Input #1, texte
NbLignes = NbLignes + 1
Wend


Close #1


End Sub

 Drikce 06
0
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 17:08
ouaou pas mal !

et en comptant 6 lignes avant la fin (la ligne qui m'interesse quoi)

j'ai essayé ca : TablString(NbLignes-6) = TaString

mais ca marche pas :(
0
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 17:10
oups, si ca marche !!

un grand merci à toi Drikce 06

à bientot tout le monde

Probleme resolu

Cruzy
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 17:12
De rien comme ça j'ai appris à lire un fichier texte en VBA et à en prendre le contenu!

 Drikce 06
0
cs_cruzy Messages postés 17 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 23 novembre 2006
23 nov. 2006 à 17:15
loooooool

heureux de tavoir rendu service alors
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 nov. 2006 à 17:31
lol! tu peux enlever cette ligne dans mon dernier code elle ne sert à rien.
NbLignes = 0

Bonne continuation
@+

 Drikce 06
0
lorsqu'on utilise TRIPOLI (vu l'estimateur KCOLL pour ton keff), pas besoin de passer par Microsoft Excel. Tu peux utiliser la commande grep dans ta console pour extraire les données qui t'intéressent du code.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
19 févr. 2015 à 23:04
Et bonjour, tu connais?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 20/02/2015 à 07:29
Pas bonjour non plus, donc.
Tu peux utiliser la commande grep dans ta console

Ah ! Avec Windows ? ===>> explique-moi.
Bref ....

PS :
- machine avec Excel et VBA ne saurait être machine avec OS UNIX ou LINUX
- la commande DOS qui pourrait être utilisée pour commencer à faire à peu près la chose sur machine avec OS Windows est la commande FIND
- Il faudrait ensuite, de toutes manières "rediriger" (par un pipe)
On s'écarte-là de plus en plus du chemin de la sagesse.

Il n'était d'ailleurs pas sage de "déterrer" une discussion vieille de 9 ans, de surcroît résolue !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
Rejoignez-nous