
Sub DistribuisciUnivoci2()
Dim miaColl As Collection, i As Long, riga As Long, v As Variant
Const NumDaExtr = 20
[M:M].ClearContents
Randomize Timer
Set miaColl = New Collection
For i = 0 To NumDaExtr - 1
miaColl.Add Chr(64 + i + 1), CStr(i + 1)
Next
riga = 1
Do
i = CLng(Rnd * (miaColl.Count - 1) + 1)
Cells(riga, "M").Value = miaColl(i)
miaColl.Remove i
riga = riga + 1
Loop Until miaColl.Count = 1
Cells(riga, "M").Value = miaColl(1)
End Sub |
miaColl.Add i + 1, CStr(i + 1) |
'ricordati di dichiarare v all'inizio
Dim v as variant
'e poi 'invece di:
' For i = 0 To NumDaExtr - 1
' miaColl.Add Chr(64 + i + 1), CStr(i + 1)
' Next
'sostituisci questo:
For Each v in [A2:A21]
miaColl.Add v, cstr(v)
Next |
Sub Copie_univoche()
Dim i As Long, indice As Long
Dim Lst As New Collection
Application.ScreenUpdating = False
Randomize
''''''
For i = 2 To 21
Lst.Add Cells(i, 1)
Next i
''''''''''
For i = 2 To 21
indice = Int(((21 - i) * Rnd) + 1)
If i <= 11 Then
Cells(i, 3) = Lst(indice)
Else
Cells(i - 10, 4) = Lst(indice)
End If
Lst.Remove (indice)
Next i
Set Lst = Nothing
Application.ScreenUpdating = True
End Sub
|
