Ciao simobarre950,
ho creato una tabella con tutti i giocatori della serie A, ad ognuno è stato assegnato un codice a questo punto ho creato la formula che mi permette di estrarre casualmente un codice tra quelli presenti nella tabella. il problema è che, soprattutto
dopo averne estratti diversi e quando cioè ne iniziano a mancare pochi, il software continua ad estrarre giocatori già usciti! come posso fare a non estrarre due volte il solito codice?
Occorre sapere se si tratti della estrazione in un colpo oppure in colpi successive.
Nel primo caso, prova la seguente UDF (funzione utente):
- Alt+F11 per aprire l'editor di VBA
- Menù | Inserisci | Modulo (oppure
Alt+IM) per inserire un nuovo modulo di codice
- Nel nuovo modulo vuoto, incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Public Function RandUnique(iMin As Long, _
iMax As Long, _
Campione As Long) _
As Variant()
Dim arr() As Variant
Dim i As Long, j As Long
Dim iTemp As Long
On Error GoTo XIT
If iMin > iMax Or Campione > (iMax - iMin + 1) Then
GoTo XIT
End If
ReDim arr(0 To iMax - iMin)
For i = 0 To UBound(arr)
arr(i) = iMin + i
Next
For i = 0 To UBound(arr)
iTemp = arr(i)
j = Int((iMax - iMin) * Rnd)
arr(i) = arr(j)
arr(j) = iTemp
Next
ReDim Preserve arr(0 To Campione - 1)
RandUnique = arr
Exit Function
XIT:
RandUnique = CVErr(xlErrNA)
End Function
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
- Salva il file con l’estensione xlsm
La UDF prende tre parametri, iMin, iMax e Campione. iMin è il codice minimo da utilizzare, iMax è il numero massimo da considerare e Campione è il numero di giocatore da estrarre. Ad esempio, se ci fossero 330 giocatori e ne volessi estrarre 15, dopo aver selezionato un intervallo di 15 celle in una riga, si immetterebbe
la formula così:

Questa funzione viene confermata in modo matriciale con Ctrl+Shift+Invio
Per rendere i numeri estratti statici, bisognerebbe far una operazione di Copia | Incolla speciale | Valori.
Potresti scaricare il mio file di prova Simo20160812.xlsm a:
https://www.dropbox.com/s/51hc6xzn9zls14i/Simo20160812.xlsm?dl=0
Nota che in questa file, al fine di dimostrare le formule, non ho ancora 'fissato' i valori estratti e, pertanto, si cambieranno ad ogni ricalcolo.
Però, se la tua intenzione fosse invece di estrarre i giocatori in più colpi, sarebbe opportuno fornire una spegazione dettagliata dei passi precisi.
===
Regards,
Norman