salve
non ho ben capito se vuoi realizzare un file unico senza doppioni, oppure come nell'ultimo posto ripulire il file2.txt dai nominativi presenti nel file1.text
Le macro che seguono sono da inserire in in file excel e generano un foglio excel che poi potrai gestire come ritieni meglio. NB. Ho ipotizzato che il file1.txt e file2.txt si trovino nel disco C:\
1) soluzione -Genera un nuovo file con dati univoci:
Sub univoci()
Dim arr() As Variant
Dim arr2() As Variant
Dim miaColl As Collection
Set miaColl = New Collection
Open "c:\file1.txt" For Binary As #1
i = Split(Input(LOF(1), #1), vbCrLf)
ReDim arr(UBound(i))
For a = 0 To UBound(i)
arr(a) = i(a)
Next
x = UBound(arr)
Close #1
Open "c:\file2.txt" For Binary As #1
e = Split(Input(LOF(1), #1), vbCrLf)
ReDim arr2(UBound(e))
For a = 0 To UBound(e)
arr2(a) = e(a)
Next
Close #2
For n = 0 To UBound(arr) - 1
miaColl.Add arr(n), arr(n)
Next
On Error Resume Next
For s = 0 To UBound(arr2) - 1
miaColl.Add arr2(s), arr2(s)
Next
x = miaColl.Count
H = 2
For i = 1 To x
Cells(H, 1).Value = miaColl(i)
H = H + 1
Next i
Close #1
Close #2
End Sub
2) genera un nuovo file2 ripulito dei nomi che trova nel file 1
Sub RimuoveDoppi()
Dim arr() As Variant
Dim arr2() As Variant
Open "c:\file1.txt" For Binary As #1
i = Split(Input(LOF(1), #1), vbCrLf)
ReDim arr(UBound(i))
For a = 0 To UBound(i)
arr(a) = i(a)
Next
x = UBound(arr)
Close #1
Open "c:\file2.txt" For Binary As #1
e = Split(Input(LOF(1), #1), vbCrLf)
ReDim arr2(UBound(e))
For a = 0 To UBound(e)
arr2(a) = e(a)
Next
Close #2
H = 2
For s = 0 To UBound(arr2) - 1
For n = 0 To UBound(arr) - 1
If arr2(s) = arr(n) Then
ctrl = True
Exit For
End If
Next n
If Not ctrl Then
Cells(H, 2).Value = arr2(s)
H = H + 1
End If
ctrl = False
Next s
Close #1
Close #2
End Sub
saluti
Andrea