Forse mi sono dimenticato di scriverlo: ora i numeri spia sulla destra riguardano SOLO le ultime 6 estrazioni e i numeri in queste estrazioni usciti. Salvo errori e orrori vari. Da un veloce controllo è così. Il motivo per cui avevo scelto solo le ultime 6 estrazioni mi sfugge, c'era una ragione ben precisa, ma non la ricordo, cribbio!
La macro utilizzata si chiama Main e al suo interno ha questa parte di codice:
' Estrai i numeri spia dalle ultime 6 estrazioni
For i = 1 To 6
For Each ruota In ruoteSelezionate
colRuota = Application.Match(CStr(ruota), ruote, 0)
For j = 1 To 5
numeriSpia(i, j) = CLng(val(CStr(datiArchivio(fin - 6 + i, 4 + (colRuota - 1) * 5 + j - 1))))
Next j
Next ruota
Next i
For sp = 1 To 30 ' Analizziamo solo i 30 numeri spia estratti
Erase num
co = 0
ws.Cells(row, 1).Value = String(57, "_")
row = row + 1
For j = ini To fin - 6 ' Escludiamo le ultime 6 estrazioni dall'analisi
If scelta = 3 Then
On Error Resume Next
dataEstrazione = CDate(datiArchivio(j, 3))
On Error GoTo 0
If IsDate(dataEstrazione) Then
giornoMese = Day(dataEstrazione)
estrazioneCorrente = Application.WorksheetFunction.RoundUp(giornoMese / 7, 0)
If estrazioneCorrente <> estrazioneDelMese Then GoTo NextJ
Else
GoTo NextJ
End If
End If
If PosizioneMultipleRuote(j, ruoteSelezionate, numeriSpia((sp - 1) \ 5 + 1, (sp - 1) Mod 5 + 1), datiArchivio) Then
co = co + 1
For a = j + 1 To Application.Min(j + 6, fin - 6)
n = AnalizzaNumeriMultipleRuote(a, ruoteSelezionate, datiArchivio)
If n > 0 And n <= 90 Then num
= num
+ 1
Next a
End If
NextJ:
Next j
ws.Cells(row, 1).Value = "Numero spia: " & numeriSpia((sp - 1) \ 5 + 1, (sp - 1) Mod 5 + 1) & " su ruote selezionate, casi = " & co & " colpi 6"
row = row + 1
ws.Cells(row, 1).Resize(1, 6).Value = Array("Num.", "Frequenza", "Percentuale", "Ritardo Attuale", "Ritardo Massimo", "Punteggio Z")
With ws.Cells(row, 1).Resize(1, 6)
.HorizontalAlignment = xlCenter
.Interior.Color = RGB(200, 200, 200)
End With
row = row + 1
ReDim topNumbers(1 To 90, 1 To 2)
totalOccurrences = 0
For i = 1 To 90
topNumbers(i, 1) = i
topNumbers(i, 2) = num(i)
totalOccurrences = totalOccurrences + num(i)
Next i
Call QuickSort(topNumbers, 1, 90, 2)
maxOccurrence = topNumbers(90, 2)
media = totalOccurrences / 90
devStd = CalcolaDevizioneStandard(num)
For i = 1 To 3
If co > 0 Then
percentuale = (CDbl(topNumbers(91 - i, 2)) / CDbl(maxOccurrence)) * 100
punteggioZ = (topNumbers(91 - i, 2) - media) / devStd
numeroCorrente = CLng(topNumbers(91 - i, 1))
ws.Cells(row, 1).Value = numeroCorrente
ws.Cells(row, 2).Value = topNumbers(91 - i, 2)
ws.Cells(row, 3).Value = percentuale / 100
ws.Cells(row, 3).NumberFormat = "0,00%"
ws.Cells(row, 4).Value = CalcolaRitardoAttualeMultipleRuote(numeroCorrente, ruoteSelezionate, fin, datiArchivio)
ws.Cells(row, 5).Value = CalcolaRitardoMassimoMultipleRuote(numeroCorrente, ruoteSelezionate, ini, fin, datiArchivio)
ws.Cells(row, 6).Value = punteggioZ
ws.Cells(row, 6).NumberFormat = "0.00"
With ws.Cells(row, 1).Resize(1, 6)
.HorizontalAlignment = xlCenter
If row Mod 2 = 0 Then .Interior.Color = RGB(220, 230, 241)
If percentuale > 90 Then .Cells(3).Font.Color = RGB(255, 0, 0)
End With
row = row + 1
End If
Next i
row = row + 1
Se vuoi provare, tanto per divertirti: apri chatgdp, poi apri la Macro Main
Vedi l'allegato 2291504
Selezioni Main e clicchi su modifica.
Copia l'intera Macro, assicurati di partire dall'inizio, a volte una parte della Macro non si vede.
Poi la copi dentro chatgdp (ci vuole più tempo a scriverlo che a dirlo, e se ci riesco io...)
Una volta copiata puoi chiederle, scrivendo, di modificare la macro perché consideri 12 estrazioni anzichè 9, o quello che vuoi.
Poi batti invio (devi usare invio solo quando vuoi passare quello che hai scritto a chatgdp)
A questo punto inizierà, sul lato destro a generare la Macro modificata.
Controlla che ci sia tutta e che alla fine non ci siano righe non complete. A volte appare il messaggio "Continua a generare", ci devi cliccare sopra.
Se non sei sicuro chiedile semplicemente se la macro è completa.
Dove ha generato la macro, in alto, c'è scritto "copia codice":
Vedi l'allegato 2291507
Clicca per copiare. Poi devi incollare il tutto nella Macro Main, chiuderla e provare se funziona.
Molto spesso non funziona. Dirai ma allora? Serve a prendere confidenza col programma.
Se ci riesci potrai chiedere di farti macro di ogni tipo. Sapendo che spesso sarà un processo lungo. Dovrai in caso di errore, scrivere l'errore e dirle di correggerlo. Può essere divertente, frustante, psichedelico... Ma alla fine, quando riesci, anche se come me non sai che cavolo hai fatto, appagante.
Ciao
Baciccia