In effetti il ciclo suggerito da Flash non aveva chance di essere piu' veloce di quello originariamente proposto da Statix.
In particolare lo svantaggio e' nell' usare un ciclo standard
For CC = 4 to 8 /Next C rispetto a un ciclo
For Each Item InCollection /Next Item: infatti essendo la collezione una delle strutture dati di excel la sua gestione e' ottimizzata rispetto a un loop standard.
In un test di performance, la macro originale ha impiegato 0.56 secondi, la variante 0,62.
Se proprio vogliamo quindi limare qualche microsecondo bisogna eliminare, nella macro di Statix, anche il ciclo
For I = 6 To URS /Next I, optando per un unico For Each /Next:
- Codice: Seleziona tutto
For Each cell In Range("D6:H" & URS)
If cell.Interior.ColorIndex = 4 Then
Range("R" & cell.Row) = Range("A" & cell.Row)
End If
Next cell
Il tempo di esecuzione del test di performance e' stato di 0,45 sec; statisticamente si tratta di una riduzione del -20%, anche se immagino che non ti cambiera' la vita.
Ciao a tutti