1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
Sub Chercher_txt()
'Declaration des variables
Dim Chaine As String
Dim Source As String
Dim Ar() As String
Dim i As Long
Dim Comp, NomFichier_1, NomFichier_2, end_line
Dim Presence_1 As Boolean
Dim Presence_2 As Boolean
Dim Colonne As Integer
Dim Separateur As String * 1
'Initialisation des variables
Presence_1 = False
Presence_2 = False
Colonne = 124 '(Colonne du fichier txt contenant les codes)-1
Separateur = Chr(59) 'separateur = ;
end_line = Range("A65536").End(xlUp).Row 'Ligne de fin de la colonne contenant les élément a chercher
'Fenetre de choix pour les deux fichiers
f = Application.GetOpenFilename("Fichier de codes,*.txt", , "Choisir les deux fichiers de codes", , True)
If VarType(f) = vbBoolean Then Exit Sub
'Stockage du nom des deux fichiers
NomFichier_1 = f(1)
NomFichier_2 = f(2)
For i = 1 To end_line
Comp = 1
Source = Cells(i, 1).Value 'Cellule contenant l'élément a chercher
'Recherche de la chaine dans le fichier 1
Open f(1) For Input As #1
Do While (Not EOF(1)) And (Comp <> 0)
Line Input #1, Chaine
Ar = Split(Chaine, Separateur)
Comp = StrComp(Ar(Colonne), Source)
Loop
Close #1
If Comp = 0 Then 'Si la chaine a été trouvée dans 1
Presence_1 = True
Cells(i, 2).Value = NomFichier_1 'On récupère le nom du fichier 1
Else 'Sinon On cherche dans 2
'Recherche de la chaine dans le fichier 2
Comp = 1
Open f(2) For Input As #2
Do While (Not EOF(2)) And (Comp <> 0)
Line Input #2, Chaine
Ar = Split(Chaine, Separateur)
Comp = StrComp(Ar(Colonne), Source)
Loop
Close #2
If Comp = 0 Then 'Si la chaine a été trouvée dans 2
Presence_2 = True
Cells(i, 2).Value = NomFichier_2 'On récupère le nom du fichier 1
Else 'Sinon l'élément cherché est dans aucun des deux fichiers
Cells(i, 2).Value = "Code not found"
End If
End If
Next
End Sub |
Partager