Sub Sincroni()
Dim rambo(8990, 1), maxmax(100)
Dim ult, rankda, riga, estr, es1, es2, z1, z2, zz1, zz2, ambo, numEm, hh, cap, dif1, dif2, a, na
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''leggo archivio estrazioni
ult = Range("INPUT!C13")
fog = "output"
Sheets(fog).Select
Range("A02:J4005").Select
Selection.Delete
Selection.Range("A01:J4005").NumberFormat = "@"
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''carica arrays con ritardi storici
maxmax(100) = 3: maxmax(99) = 3: maxmax(98) = 4
maxmax(97) = 7: maxmax(96) = 7: maxmax(95) = 7
maxmax(94) = 9: maxmax(93) = 8: maxmax(92) = 10
maxmax(91) = 10: maxmax(90) = 11: maxmax(89) = 11
maxmax(88) = 12: maxmax(87) = 13: maxmax(86) = 14
maxmax(85) = 15: maxmax(84) = 16: maxmax(83) = 16
maxmax(82) = 17: maxmax(81) = 17: maxmax(80) = 21
maxmax(79) = 22: maxmax(78) = 20: maxmax(77) = 19
maxmax(76) = 20: maxmax(75) = 22: maxmax(74) = 22
maxmax(73) = 26: maxmax(72) = 26: maxmax(71) = 27
maxmax(70) = 27: maxmax(69) = 27: maxmax(68) = 31
maxmax(67) = 28: maxmax(66) = 32: maxmax(65) = 28
maxmax(64) = 33: maxmax(63) = 30: maxmax(62) = 34
maxmax(61) = 32: maxmax(60) = 35: maxmax(59) = 36
maxmax(58) = 36: maxmax(57) = 38: maxmax(56) = 36
maxmax(55) = 39: maxmax(54) = 41: maxmax(53) = 42
maxmax(52) = 41: maxmax(51) = 44: maxmax(50) = 46
maxmax(49) = 48: maxmax(48) = 50: maxmax(47) = 51
maxmax(46) = 53: maxmax(45) = 49: maxmax(44) = 54
maxmax(43) = 55: maxmax(42) = 53: maxmax(41) = 56
maxmax(40) = 57: maxmax(39) = 58: maxmax(38) = 59
maxmax(37) = 60: maxmax(36) = 66: maxmax(35) = 67
maxmax(34) = 70: maxmax(33) = 67: maxmax(32) = 71
maxmax(31) = 72
maxmax(30) = 74: maxmax(29) = 75: maxmax(28) = 77
maxmax(27) = 81: maxmax(26) = 82: maxmax(25) = 87
maxmax(24) = 88: maxmax(23) = 90: maxmax(22) = 92
maxmax(21) = 97: maxmax(20) = 100: maxmax(19) = 103
maxmax(18) = 104: maxmax(17) = 117: maxmax(16) = 120
maxmax(15) = 123: maxmax(14) = 125: maxmax(13) = 133
maxmax(12) = 135: maxmax(11) = 138: maxmax(10) = 148
maxmax(9) = 156: maxmax(8) = 171: maxmax(7) = 186
maxmax(6) = 204: maxmax(5) = 214: maxmax(4) = 221
maxmax(3) = 279: maxmax(2) = 338: maxmax(1) = 630
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheets("Archivio").Select 'seleziona il Foglio Archivio per andare a leggere i dati delle estrazioni
''''questa riga serve per azzerare la variabile conta che ci servir per passare da una ruota alla successiva
riga = 1 'si aggiunge + 1 perch l'arichivio inizia dalla seconda riga
es1 = Cells(riga, 1) 'scrive la variabile NumEM (il numero estrazione) nella Cella H2
es2 = Cells(riga, 3) 'scrive la variabile DataE (la data dell'estrazione) nella Cella D4
estr = 1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''legge archivio dal 1939 di tutte le estrazioni
For estr = estr + 1 To ult + 1
rankda = 4
numEm = estr - 1
''''Tutte le ruote carica i 50 estratti
For ruota = 1 To 10
ReDim nm(5)
hh = 0
For k = 0 To 4
hh = hh + 1
nm(hh) = Cells(estr, rankda + k)
Next
rankda = rankda + 5
'''calcola ritardo dei 100 ambi di ogni estrazione
For z1 = 1 To 4
z2 = z1
For z2 = z2 + 1 To 5
If nm(z1) < 10 Then
zz1 = "0" & nm(z1)
Else
zz1 = nm(z1)
End If
If nm(z2) < 10 Then
zz2 = "0" & nm(z2)
Else
zz2 = nm(z2)
End If
If Int(zz1) < Int(zz2) Then
ambo = zz1 & zz2
Else
ambo = zz2 & zz1
End If
rambo(ambo, 0) = ambo
rambo(ambo, 1) = numEm
Next
Next
Next
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''sposta ritardi in array ambi
ReDim ambi(4005, 1)
za = 8990
cc = 0
For z = 1 To za
If rambo(z, 0) > 0 Then
cc = cc + 1
ambi(cc, 1) = ult - rambo(z, 1)
ambi(cc, 0) = rambo(z, 0)
End If
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''scrivi intestazione colonne su foglio output
fog = "output"
Sheets(fog).Select
Cells(1, 1) = " Ruota "
Cells(1, 2) = " Rit.Attuale "
Cells(1, 3) = " Qta "
Cells(1, 4) = " Ambi Sincro - Isocroni "
Cells(1, 5) = " N.Estraz. "
'''prova sort per ritardo discendente a tutte valutato
''' Case "descend"
SortCol = 1
'riempiere campi output
Dim i As Long, j As Long, temp As Variant
Numrows = 4005
For i = 1 To Numrows - 1
For j = i To Numrows
If Val(ambi(j, 1)) > Val(ambi(i, 1)) Then
temp = ambi(i, 1)
temp1 = ambi(i, 0)
ambi(i, 1) = ambi(j, 1)
ambi(i, 0) = ambi(j, 0)
ambi(j, 1) = temp
ambi(j, 0) = temp1
End If
Next j
Next i
' Selection.Value = ram
''''''''''scrittura file di output
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''' solo sincroni ritardo
cs = 1
za = 4005
ReDim ordine(4005, 1)
For z = 1 To za
ordine(ambi(z, 1), 0) = ordine(ambi(z, 1), 0) & ambi(z, 0) & " | "
ordine(ambi(z, 1), 1) = ordine(ambi(z, 1), 1) + 1
Next
For a = 0 To 4005
If ordine(a, 1) > 0 Then
cs = cs + 1
Cells(cs, 1) = " T u t t e "
Cells(cs, 2) = a
Cells(cs, 3) = ordine(a, 1)
Cells(cs, 4) = ordine(a, 0)
Cells(cs, 5) = ult - a
If a >= maxmax(ordine(a, 1)) Then
Cells(cs, 2).Interior.ColorIndex = 4
Cells(cs, 3).Interior.ColorIndex = 4
Cells(cs, 4).Interior.ColorIndex = 4
End If
End If
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
cs = cs + 1
Cells(cs, 4) = " Aggiornata all'estrazione n." & es1 & " - " & es2
Cells(cs, 4).Interior.ColorIndex = 6
For j = 1 To 100
Cells(cs + j, 4) = "n.Ambi " & j & " Rit.MaxSto " & maxmax(j)
Next
End Sub