Non so valutare quanto sarebbe pesante lavorare con la formattazione condizionale (sono formule che vengono ricalcolate di continuo, quindi se i dati sono tanti potrebbero rallentare visibilmente il funzionamento del tuo foglio).
In prima battuta propongo quindi di inserire la colorazione nella stessa macro che calcola la tabella del Fuori 90.
Cioe’ partire dalla sola tabella delle estrazioni e con la seguente macro calcolare i “Fuori90” e applicare la colorazione alle combinazioni che producono doppioni (ovviamente sostituendo anche la tua macro che oggi calcola i fuori90).
Il codice:
- Codice: Seleziona tutto
Sub Fuori90Bis()
Dim wArr, oArr(), I As Long, J As Long, R As Long
Dim iDati As Range, iFuori As Range, oInd As Long
Dim cArr(1 To 90, 1 To 2), tbForm(1 To 3) As String
'
Set iDati = Sheets("Foglio4").Range("A2") '<<< La posizione di partenza delle estrazioni
Set iFuori = Sheets("Foglio4").Range("T2") '<<< La posizione di partenza della tabella Fuori90
'
wArr = Range(iDati, iDati.End(xlDown)).Resize(, 6).Value 'Legge le estrazioni
ReDim oArr(1 To UBound(wArr), 1 To 11) 'Preparo la tabella Fuori90
For R = 1 To UBound(wArr) 'Scan ogni estrazione
oArr(R, 1) = wArr(R, 1)
oInd = 1
Erase cArr 'Clear Conta array
For I = 2 To 5 'Ciclo di calcolo Fuori90
For J = I + 1 To 6
oInd = oInd + 1
oArr(R, oInd) = wArr(R, I) + wArr(R, J) 'Calcolo Fuori90
If oArr(R, oInd) > 90 Then
oArr(R, oInd) = oArr(R, oInd) - 90
End If
cArr(oArr(R, oInd), 1) = cArr(oArr(R, oInd), 1) + 1 'Conta le uscite
If cArr(oArr(R, oInd), 1) = 1 Then
'se 1, memorizza le celle del calcolo
cArr(oArr(R, oInd), 2) = cArr(oArr(R, oInd), 2) & "," & iDati.Cells(R, I).Address & "," & iDati.Cells(R, J).Address
ElseIf cArr(oArr(R, oInd), 1) = 2 Then
'se 2, accoda gli indirizzi delle prima e della seconda coppia
tbForm(1) = tbForm(1) & cArr(oArr(R, oInd), 2)
tbForm(2) = tbForm(2) & "," & iDati.Cells(R, I).Address & "," & iDati.Cells(R, J).Address
Else
'se piu' di 2 accoda gli indirizzi della coppia
'forse semplificabile in tbForm(3)= etc etc perchè non può essere >3
tbForm(cArr(oArr(R, oInd), 1)) = tbForm(cArr(oArr(R, oInd), 1)) & "," & iDati.Cells(R, I).Address & "," & iDati.Cells(R, J).Address
End If
Next J
Next I
Next R
iFuori.Resize(UBound(oArr), 11).Value = oArr 'Compila tabella del Fuori90
iDati.Resize(UBound(oArr), 6).Interior.ColorIndex = xlNone 'Elimina colori alle estrazioni
For I = 1 To UBound(tbForm) 'Applica colori
If Len(tbForm(I)) > 3 Then
iDati.Parent.Range(Mid(tbForm(I), 2)).Interior.Color = RGB(80 * (I - 1), 255 - 80 * (I - 1), 100)
End If
Next I
End Sub
Le righe in testa marcate <<< vanno personalizzate come da commento; i dati ora presenti sono legati all'ambiente di test che mi sono creato.
La macro cerca di applicare colori diversi alle coppie che generano Fuori90 uguali, ma questo talvolta va in tilt se lo stesso numero fa parte di piu’ coppie da evidenziare. Ad esempio con questa ipotetica estrazione:
- Codice: Seleziona tutto
21 40 22 2 41
Ci sono due Fuori90 ripetuti: 62 e 43; ma il numero 41 compare in ambedue le coppie (41+22; 41+2), col risultato che le coppie non saranno evidenti guardando i soli colori
Vedi se puoi adattare alla tua situazione...