Recherche si une chaine de fichier existe dans d'autres

dhannoset Messages postés 3 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 27 janvier 2011 - 25 janv. 2011 à 11:02
dhannoset Messages postés 3 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 27 janvier 2011 - 27 janv. 2011 à 11:55
Bonjour,

Je debute dans VBA et je dois developper une macro qui lit une chaine dans un fichier.txt et qui regarde si cette chaine existe dans d'autres fichiers .txt. Si elle n'existe pas je l'écris dans une feuille excel.

Cela existe certainement mais ou ?

Je vous remercie d'avance pour votre aide.

Dom

3 réponses

marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 1
25 janv. 2011 à 17:56
Bonsoir,

Ci-dessous code pour recherche une chaine (variable : Wchaine) dans un fichier de type texte.

C'est la variable K23 (K23 > 0, chaine trouvée) qui détermine si la chaine a été trouvée. Dans ce cas si je trouve la chaine 'LOC+1474 dans le fichier j'écris dans la feuille 'Feuil1'.

Il suffit de changer le test du 'if' pour faire l'inverse.

J'espère que cela va vous aider.

Didier


Public Sub Lecture_fichier_recherche()


'Variable pour alimenter la feuille
'rwindex = ligne
'colindex = colonne
'
Dim rwindex As Integer
Dim colindex As Integer

'
Dim K23 As Integer

Dim Wchaine As String, Ilecture As String

'Recherche de la valeur
'
Wchaine = "LOC+147"


'
'Ouverture du fichier à lire
Open "C:\Excel\fichier_loc.txt" For Input As #1

'Initialisation des variables
rwindex = 0
colindex = 0

' ********************************
'Lecture du fichier
'- Si la fin de fichier n'est pas atteinte, on reste dans
' la boucle de lecture
' ********************************

'Début de la boucle de lecture
Do While Not EOF(1)

'On récupère les données lues dans la variable Ilecture
Line Input #1, Ilecture

K23 = 0

'Test
K23 = InStr(1, Ilecture, Wchaine)

If K23 > 0 Then

rwindex = rwindex + 1
colindex = 1

'Ecriture dans la feuille "Feuil1"
'rwindex = N° de ligne dans la feuille
'colindex = N° de la colonne dans la feuille
'
Application.Worksheets("Feuil1").Cells(rwindex, colindex).Value = Ilecture

End If

Loop

Close #1

MsgBox "Fin de lecture !", vbDefaultButton1


End Sub
0
dhannoset Messages postés 3 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 27 janvier 2011
26 janv. 2011 à 08:24
Bonjour Didier,

Je vous remercie infiniment pour votre réponse qui, j'en suis certain, va être très utile afin de comprendre comment cela fonctionne.
De plus cela me fait gagner un temps précieux.

Je test aujourd'hui même et je vous tiens informé.

Encore merci.
Dominique
0
dhannoset Messages postés 3 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 27 janvier 2011
27 janv. 2011 à 11:55
Impec, tout fonctionne a merveille. Je n'ai plus qu'a teser si ma chaine existe dans un autre fichier.

Merci encore

Dominique
0
Rejoignez-nous