Ma scusate c'è qualcosa di incompreso in tutto ciò
la mia macro mette in ordine casuale qualsiasi nome esistente da A2 a A10, A100, A1000 infatti calcola quante righe dovrà combinare casualmente è chiaro che più righe sono e più è difficile intercettare l'ultimo concorrente ancora da abbinare.
Ammettiamo di aver inserito 1000 nomi
i primi 700 li colloca subito
poi (leggendo la macro) fa un controllo di celle ancora da sistemare e ricomincia la casualità
per riempire le celle in C (colonna nascosta) che non è ancora attribuita e ne sistemerà altre 250
rieffettua il controllo trova ancora 50 celle vuote ma chiaramente le rielabora tutte completandone altre 49
Adesso immaginatevi di intercettare casualmente l'unica cella rimasta da collocare rispetto alle 999 già collocate (qui forse ottimizzando la mcro si potrebbe attribuire all'unico spazio vuoto terminando velocemente la routine)
Ma sapendo che i nomi non sono più di 40 (perché sono 80 coppie) di cui 40 in A e 40 in B avrete in D i concorrenti che si accoppiano con i nomi in B molto velocemente.
Se desiderate invece abbinare i concorrenti in A con i concorrenti casuali che sono in B è sufficiente cambiare la riga di ordinamento casuale
- Codice: Seleziona tutto
Range("D" & UA).Value = Range("A" & Cas).Value
con
- Codice: Seleziona tutto
Range("D" & UA).Value = Range("B" & Cas).Value
e avrete fissi i 40 nomi di A e casuali i nomi che sono in B riportati nella colonna D
E' tutto chiaro ora?
Ciao
P.s. Vi ricordo che se office 2003, per effettuare una elaborazione, impiega 1 minuto Office 2007 impiega 3 volte tanto (3 minuti) per via della compressione degli oggetti che tale applicativo adopera (MS preferisce avere file più piccoli in un'epoca dove i dischi sono diventati di terabyte e rallentare il calcolo, questa è, a mio avviso, una scelta sbagliatissima, ma è così)