Recherche valeur dans bloc note et copier vers Excel
Bonsoir à tous, je sollicite votre aide précieuse et vous remercie par avance,
Sur le bloc note je souhaite créer une macro excel compatible 2007 et 2013 pour:
- ouvrir le fichier bloc note dans le même répertoire que le fichier excel
- rechercher les valeurs "1050.160" donc d'abord rechercher "340009" puis descendre d'une ligne et copier valeur "1050.160" et la coller en cellule" A2" sous excel de la feuille 1
- Faire pareil pour extraire "3.906" sous la ligne "340011" et coller" 3.906" en "B2"
- Ceci est un extrait du fichier et les valeurs varient mais il est important de rechercher d'abord les lignes "34009" et "340011" qui elles ne bougent pas, ensuite il faut copier/coller ss excel les valeurs en dessous et après jeu.
- Fermer le bloc note sans l'enregistrer
Je ne peux pas envoyer de fichier texte mais les données sont comme ci-dessous:
340009 1.22-1 -001 Rn 1050jeu mmm
jeu 1050.160 GT 1049.630 AND 1050.160 LT 1050.330 ............... IL
340010 1.22-1 -001 Rn 1050jeu mmm
jeu -0.020 GT -0.35 AND -0.020 LT 0.35 ....................... IL
340011 1.22-1 -001 Fr 4.1jeu mmm
jeu 3.906 GT 3.612 AND 3.906 LT 4.612 ........................... IL
340012 1.22-1 -001 Fr 4.1jeu mmm
jeu 0.013 GT -0.5 AND 0.013 LT 0.5 ........................... IL
Merci encore.
Bonjour,
Avec une fonction perso. Le fichier texte doit se trouver dans le dossier du classeur :
Function Jeu(Fichier As String, Code As String)
Dim Chaine As String
Dim Prochaine As Boolean
Open ThisWorkbook.Path & "\" & Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, Chaine
If Prochaine = True Then
Jeu = Split(Chaine, " ")(1)
Exit Do
End If
If InStr(Chaine, Code) <> 0 Then Prochaine = True
Loop
Close #1
End FunctionLes codes à rechercher sont par exemple en ligne 1 et la formule entrée en ligne 2. La fonction demande deux arguments, le nom du fichier texte (pour les test chez moi "jeu.txt") et le code recherché comme par exemple =jeu("jeu.txt";A1)
Bonsoir et merci de la réponse,
Je n'ai pas encore testé la fonction et pas encore "digéré" son fonctionnement.
Je comprends l'ouverture du fichier texte mais ce que je souhaites c'est pointer sur la ligne "340009", ensuite descendre d'1 ligne et pointer sur la valeur "1050.160". Faire de même pour l'autre caractère "340011", je dois le faire sur 20 caractères environ . Car dans mon fichier source, que malheureusement je ne peux pas importer, il y a le terme "jeu" 50 fois et je ne veux pas extraire toutes les lignes avec "jeu", en général 1 sur 2. En tout cas c'est un bon début et je vous en remercie.
Bonne soirée
Bonjour,
C'est sûr que si tu ne testes pas, tu ne peux pas savoir !
Je comprends l'ouverture du fichier texte mais ce que je souhaites c'est pointer sur la ligne "340009", ensuite descendre d'1 ligne et pointer sur la valeur "1050.160"...
Avec la formule =jeu("jeu.txt";A1) sur la ligne 2 (A2) que tu tires vers la droite (sur B2) (le nom du fichier ne change pas) et que tu entres tes codes "340009" et "340011" en A1 et B1, tu auras en A2 et B2 les valeurs "1050.160" et "3.906". Maintenant, si ce n'est pas le résultat escompté, il va te falloir être plus précis !
Merci cela fonctionne bien
Bonne soirée