Recherche de valeur dans un fichier Excel vers un fichier txt VBA

Résolu
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011 - 23 févr. 2011 à 10:04
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011 - 23 févr. 2011 à 17:20
Bonjour, j'ai fais un bout de code qui me permet de rechercher des codes contenus dans une colonne excel ( NIR1) dans un autre fichier txt(RAF1) et me retourner les données relatives a ces codes et me retourne le résultat sur une feuille excel .
Voila le bout de code que j'ai réussi à avoir :
Sub macro()
For j = 2 To 1205

valeur = Workbooks("NIR1.xls").Sheets("NIR1").Cells(j, 1)


Cells.Find(What:=valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

ligne = ActiveCell.Row


Do
Workbooks("NIR1.xls").Sheets("Resultat").Cells(i, 1) = Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1)
i = i + 1
ligne = ligne + 1

Loop Until (Left(Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1), 14)) = "S30.G01.00.001"

Next

End Sub



Ce que je ne comprend pas , et j'ai l'impression que le out de code est bon , c'est que quand je lance la macro sur la colonne excel où ya les codes à rechercher sa me met un message d'erreur du genre : l'indice n'appartient pas à la selection.
Je n'arrive pas à trouver la source du problème pouvez vous m'aider SVP??

12 réponses

4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 13:39
Je crois que ce le fait que i = empty dans le do. Tu devrais mettre i = 1 avant le workbook...

Tien moi au courant.
3
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 13:53
Merci 4u4me4us c'est exactement sa
Maintenant une dernière question si tu veux bien m'aider
Ma recherche de données se fait dans RAF1.txt qui est un simple fichier. Et si je voulais ouvrir un repertoire qui contient plusieurs fichiers comme RAF1.txt ? t'aurais une piste pour faire la recherche sur plusieurs fichiers et pas sur un seul?
Merci beaucoup pr ta disponibilité
0
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 14:02
et au passage voila le code final que j'ai réussi à faire marcher ( encore c'est juste pr la recherche dans un seul fichier j'attend votre aide pour pouvoir rechercher dans plusieurs fichiers )

Sub test()

Workbooks.OpenText Filename:= _
"D:\Users\ysebbarh.EMEA\Desktop\RAF1.txt"
Workbooks.OpenText Filename:= _
"D:\Users\ysebbarh.EMEA\Desktop\NIR1.xls"

Columns("A:A").Select
Selection.NumberFormat = "0"
Sheets.Add
ActiveSheet.Name = "Resultat"
i = 1
For j = 2 To 1205
valeur = Workbooks("NIR1.xls").Sheets("NIR1").Cells(j,1)

Workbooks("RAF1.txt").Activate
Set celluletrouvee = Range("A:A").Find(valeur)
ligne = celluletrouvee.Row
Do
Workbooks("NIR1.xls").Sheets("Resultat").Cells(i, 1) = Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1)
i = i + 1
ligne = ligne + 1
Loop Until (Left(Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1), 14)) = "S30.G01.00.001"
Next
End
End Sub
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 14:15
Si je t bien compris tu voudrais faire la recherche d'une valeur dans plusieurs fichiers?
Exemple savoir quelle fichier RafX.txt à la valeur "Titi".

Si oui je te propose le code suivant :
dim v_i as byte
dim v_fichier as string
dim v_info as string
dim canal as byte
dim v_taille as long

canal = freefile
v_i = 1
v_fichier = dir("chemain de ton répretoir\Raf" & v_i & ".txt")
while v_fichier<>"" and instr(1,v_info,"Tit")<=0
open "chemain de ton répretoir" & v_fichier for binary as #canla
v_taille = lof(#canal)
get v_info,,#canal
close #canal
v_i=v_i+1
v_fichier v_fichier dir("chemain de ton répretoir\Raf" & v_i & ".txt")
wend


Voila J'ai taper cela de tête donc tu devra faire des corrections mais dans a froid je ferrai comme ça.

Note v_taille = lof(#canal) get v_info,,#canal pour lire le ficher d'un coup



Si c pas ça que tu me demandé SORRRRRRRRRYYYYYYY et précicse moi stp.
0

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

Posez votre question
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 14:44
OOh c'est vraiment cool de ta part sa fait plais quand il y a des gens comme toi pour aider les nuls comme moi .

J'ai vu ton code mais il me fait peur , je t'explique : la recherche, je la fais dans le fichier RAF1.txt ( le mecanisme de recherche c que je prend une valeur d'un tableau et je vais rechercher cette mm valeur dans le fichier txt pour ensuite réccuperer des données relatives à cette valeur ..)
Mnt j'ai un répertoire RAF qui contient des fichiers RAF*.txt ( l'extension du nom sa sra genre RAF1;RAF2;RAF3...);dc ton code , je le met où dans mon code à moi? et il n'affectera pas ma recherche je veux dire ma macro?
Merci beaucoup té top
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 15:03
Parfois je suis à coté de la plaque donc je v te faire un dessin de ce que je pense que tu as et veux faire et tu me dirras si suis juste. Sorry ça fais petit garçon mais comme je te dis cela m'arrive d'être à coté de la place .

Tu as arborescence suivante :

RAF----
|-----RAF1.txt
|
|-----RAF2.txt
|
|-----RAF3.txt

Tu as un tableau qui a une valeur et tu voudrais savoir dans qu'elle fichier elle est écrite ?

Je ne parle pas de ce qui a avant car c trouble pour moi. Mais si déjà tu peux me dire si a un moment ou un notre tu voudras faire cela, je verrais plus claire. Bien sur on pourra parler tu tableau plus tard mais répond moi déjà sur la vision que j'ai.

De plus un simple merci suffi vu que moi aussi je m'aide de ce site donc
0
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 15:10
d'accord.
Oui pr ton dessin d'arborescence c exactement sa.
mnt ce que je veux c'est effectivement voir si la valeur que je cherche se trouve dans l'un des fichiers de ce répertoire et en extraire les données relative à cette dernière ce que mon bout de code fait très bien.
Ma question était plus où je mettrai le bout de code que tu m'as fourni par rapport à mon code et comment jdevrai modifier cette partie du code
Workbooks("RAF1.txt").Activate
Set celluletrouvee = Range("A:A").Find(valeur)
ligne = celluletrouvee.Row
Do
Workbooks("NIR1.xls").Sheets("Resultat").Cells(i, 1) = Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1)
i = i + 1
ligne = ligne + 1
Loop Until (Left(Workbooks("RAF1.txt").Sheets("RAF1").Cells(ligne, 1), 14)) = "S30.G01.00.001"
Next
End
End Sub
pour qu'il sache que je cherche dans un repertoire et pas juste dans le fichier RAF1.txt
j'espère que je suis plus clair mnt
Merci
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 15:41
Le code que je t fourni "de mémoire donc a corriger" permet de chercher dans qu'elle fichier est la valeur.
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 15:45
A la place de "chemain de ton répretoir" met un truc genr "C:\RAF" & v_i & ".txt"
0
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 17:02
Je n'y arrive pas
euuh si possible je peux t'envoyer le Rep et le fichier Excel d'où je prend les valeurs à rechercher et voir si t'arrive à caser le code que tu m'as fourni avec mon bout de code?
Si oui je t'explique par la suite la procédure à suivre pour la recherche ( c'est juste que je dois rendre ce travail très bientot et la j'ai fais la plus grande partie mais je bloque sur la recherche dans un repertoire de fichiers).
Merci
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
23 févr. 2011 à 17:13
Ok! Mais je te répond dans deux heurs car g un train à prendre.

Mon mail perso dis_moi@yahoo.fr

Plus
0
woow74 Messages postés 39 Date d'inscription vendredi 18 février 2011 Statut Membre Dernière intervention 1 mars 2011
23 févr. 2011 à 17:20
d'accord pas de problème et merci
0
Rejoignez-nous