Public Sub ElencoUnivoco()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim lUltRiga As Long
Dim lRiga As Long
Dim lng As Long
Dim lCol As Long
Dim col As Collection
Dim v As Variant
Dim bln As Boolean
lRiga = 1
Set sh1 = Worksheets("foglio1")
Set sh2 = Worksheets("foglio2")
Set col = New Collection
With sh1
'trovo l'ultima riga con un dato
'nel foglio Storico
lUltRiga = .Range("A" & _
Rows.Count).End(xlUp).Row
'carico i dati nella collection
On Error Resume Next
For lng = 1 To lUltRiga
col.Add .Range("A" & lng), _
CStr(.Range("A" & lng))
Next
On Error GoTo 0
'ciclo la collection e
For Each v In col
lCol = 1
'setto a False la variabile
bln = False
For lng = 1 To lUltRiga
'se c'è una corrispondenza
If .Range("A" & lng).Value = v Then
bln = True
sh2.Cells(lRiga, 1).Value = v
lCol = lCol + 1
End If
Next
If bln = True Then
'scalo di una riga
lRiga = lRiga + 1
End If
Next
End With
'Set a Nothing delle variabili oggetto
Set col = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub |