Novità

Script biambo

Buona sera Cinzia ho visto il tuo messaggio e sai che quando vedo un tuo intervento mi interessa la domanda é sorte e previsione? Grazie molte in anticipo
 
Vi risulta :
BIAMBI CON RITARDO MASSIMO STORICO <= 79
Archivio : 07/01/1871 -> 19/05/2026
Estrazioni: 10,859
Trovate : 5 coppie
Rit.Max = massimo storico | Rit.Att = ritardo attuale
==========================================================
Pos Ambo 1 Ambo 2 Rit.Max Rit.Att
------------------------------------------------------
1. 10-68 41-69 77 2
2. 25-72 41-48 78 23
3. 05-60 47-85 78 3
4. 37-67 63-80 79 16
5. 17-52 48-71 79 3
 
vi risulta : su i 34 numeri radicali ?
PosAmbo 1Ambo 2Rit.MaxRit.Att
15267908-1077-80222222
14595808-1079-90199199
14595977-8079-90199199
14343003-8808-10194194
14343103-8877-80194194
14343203-8879-90194194
13534903-8844-90182182
13535008-1044-90182182
13535144-9077-80182182
13535244-9079-90182182
 
vi risulta : su i 34 numeri radicali ?
PosAmbo 1Ambo 2Rit.MaxRit.Att
15267908-1077-80222222
14595808-1079-90199199
14595977-8079-90199199
14343003-8808-10194194
14343103-8877-80194194
14343203-8879-90194194
13534903-8844-90182182
13535008-1044-90182182
13535144-9077-80182182
13535244-9079-90182182

1779497861409.png
 

Allegati

  • 1779495575520.png
    1779495575520.png
    42,9 KB · Visite: 7
Ultima modifica:
Ho provato a far trasformare la macro in uno Script alla AI. Questo è il risultato, che non funziona, per ora:

Option Explicit

Sub Main

Dim nAmbi, i, s, p
Dim sTitoloAmbi, sRuote, sFiltro
Dim filtroAnni, nRuoteScelte
Dim ruoteSelezionate(12)
Dim ambi(5, 2)
Dim inputOk, pRuote, idxR, x
Dim nEstrTot, idIni, idFin, nEstrAnalizzate
Dim dataLimite, kk, dEstr
Dim aTitoli(34), col

'========================
' INPUT NUMERO AMBI
'========================
nAmbi = Val(InputBox("Quanti ambi vuoi analizzare? (2-5)", "Gruppo Ambi", "2"))
If nAmbi < 2 Or nAmbi > 5 Then
Call Scrivi("Numero ambi non valido. Inserire un valore tra 2 e 5.", True)
Exit Sub
End If

'========================
' INPUT AMBI con validazione
'========================
For i = 1 To nAmbi
inputOk = False
Do While Not inputOk
s = InputBox("Ambo " & i & " (es: 8,77 — numeri tra 1 e 90, diversi tra loro)", "Inserimento ambo " & i)
If s = "" Then Exit Sub
s = Replace(s, ".", ",")
s = Replace(s, " ", "")
p = Split(s, ",")
If UBound(p) <> 1 Then
MsgBox "Formato non valido. Inserisci due numeri separati da virgola."
ElseIf Not IsNumeric(p(0)) Or Not IsNumeric(p(1)) Then
MsgBox "Inserisci solo numeri."
ElseIf CInt(p(0)) < 1 Or CInt(p(0)) > 90 Or CInt(p(1)) < 1 Or CInt(p(1)) > 90 Then
MsgBox "I numeri devono essere compresi tra 1 e 90."
ElseIf CInt(p(0)) = CInt(p(1)) Then
MsgBox "I due numeri dell'ambo devono essere diversi."
Else
ambi(i, 1) = CInt(p(0))
ambi(i, 2) = CInt(p(1))
inputOk = True
End If
Loop
Next i

'========================
' FILTRO PERIODO
'========================
sFiltro = InputBox("Analizza solo gli ultimi N anni (es: 5)." & vbCrLf & _
"Lascia vuoto o 0 per tutto l'archivio.", "Filtro periodo", "0")
filtroAnni = Val(sFiltro)

'========================
' SELEZIONE RUOTE
'========================
sRuote = InputBox("Ruote da analizzare (es: 1,3,5 oppure TUTTE):" & vbCrLf & vbCrLf & _
"1=Bari 2=Cagliari 3=Firenze 4=Genova 5=Milano" & vbCrLf & _
"6=Napoli 7=Palermo 8=Roma 9=Torino 10=Venezia 11=Nazionale", _
"Selezione Ruote", "TUTTE")
If sRuote = "" Then Exit Sub

nRuoteScelte = 0
Dim rr
If UCase(Trim(sRuote)) = "TUTTE" Then
For rr = 1 To 11
ruoteSelezionate(rr) = True
Next rr
nRuoteScelte = 11
Else
pRuote = Split(sRuote, ",")
For x = 0 To UBound(pRuote)
idxR = CInt(Trim(pRuote(x)))
If idxR >= 1 And idxR <= 11 Then
ruoteSelezionate(idxR) = True
nRuoteScelte = nRuoteScelte + 1
End If
Next x
End If

If nRuoteScelte = 0 Then
Call Scrivi("Nessuna ruota valida selezionata.", True)
Exit Sub
End If

'========================
' LIMITI ARCHIVIO
'========================
nEstrTot = EstrazioniArchivio
idFin = nEstrTot
idIni = 1

If filtroAnni > 0 Then
dataLimite = DateAdd("yyyy", -filtroAnni, Now())
For kk = 1 To nEstrTot
dEstr = CDate(DataEstrazione(kk, , , "/"))
If dEstr >= dataLimite Then
idIni = kk
Exit For
End If
Next kk
End If

nEstrAnalizzate = idFin - idIni + 1

'========================
' INTESTAZIONE
'========================
sTitoloAmbi = ""
For i = 1 To nAmbi
If i > 1 Then sTitoloAmbi = sTitoloAmbi & " - "
sTitoloAmbi = sTitoloAmbi & Format2(ambi(i, 1)) & "." & Format2(ambi(i, 2))
Next i

Call Scrivi("STATISTICA GRUPPO AMBI", True, , , vbBlue)
Call Scrivi("Ambi: " & sTitoloAmbi, True)
If filtroAnni > 0 Then
Call Scrivi("Periodo: ultimi " & filtroAnni & " anni (" & nEstrAnalizzate & " estrazioni)", True)
Else
Call Scrivi("Periodo: archivio completo (" & nEstrAnalizzate & " estrazioni)", True)
End If
Call Scrivi()

'========================
' INTESTAZIONI TABELLA
'========================
aTitoli(1) = "Ruota"
aTitoli(2) = "Rit.Att."
aTitoli(3) = "Rit.Max"
aTitoli(4) = "Rit.Medio"
aTitoli(5) = "% su Max"
aTitoli(6) = "Freq"
aTitoli(7) = "IC Norm."
aTitoli(8) = "Ultima Uscita"
aTitoli(9) = "Estratti"

col = 10
For i = 1 To nAmbi
aTitoli(col) = Format2(ambi(i,1)) & "." & Format2(ambi(i,2)) & " Rit.Att."
aTitoli(col + 1) = Format2(ambi(i,1)) & "." & Format2(ambi(i,2)) & " Rit.Max"
aTitoli(col + 2) = Format2(ambi(i,1)) & "." & Format2(ambi(i,2)) & " Freq"
aTitoli(col + 3) = Format2(ambi(i,1)) & "." & Format2(ambi(i,2)) & " Rit.Est."
aTitoli(col + 4) = Format2(ambi(i,1)) & "." & Format2(ambi(i,2)) & " Max.Est."
col = col + 5
Next i

Call InitTabella(aTitoli, vbBlue, , , vbWhite)

'========================
' LOOP RUOTE + TUTTE
'========================
Dim Ru
Dim aEstratti
Dim rit, ritMax, freq, ritMedio, ic, percentMax
Dim dataU, estratti, ritCorr, trovatoPrimo
Dim ritA(5), ritMaxA(5), freqA(5), ritEstA(5), ritEstMaxA(5)
Dim ritCorrA(5), ritCorrEstA(5), trovatoPrimoA(5), trovatoPrimoEstA(5)
Dim id, trovato, rStart, rEnd, rr2, gruppoUscito, a
Dim t1, t2, jj, j
Dim nCols, aValori, aColori, c, nomeRuota

For Ru = 1 To 12

If Ru <= 11 Then
If Not ruoteSelezionate(Ru) Then GoTo SkipRuota
End If

Call Messaggio(IIf(Ru <= 11, NomeRuota(Ru), "Tutte le ruote selezionate"))

rit = 0 : ritMax = 0 : freq = 0
ritMedio = 0 : ic = 0 : percentMax = 0
dataU = "--" : estratti = ""
ritCorr = 0 : trovatoPrimo = False

For a = 1 To nAmbi
ritA(a) = 0 : ritMaxA(a) = 0 : freqA(a) = 0
ritEstA(a) = 0 : ritEstMaxA(a) = 0
ritCorrA(a) = 0 : ritCorrEstA(a) = 0
trovatoPrimoA(a) = False : trovatoPrimoEstA(a) = False
Next a

'========================
' LOOP ESTRAZIONI
'========================
For id = idFin To idIni Step -1

trovato = False

If Ru <= 11 Then
rStart = Ru : rEnd = Ru
Else
rStart = 1 : rEnd = 11
End If

For rr2 = rStart To rEnd

If Ru = 12 Then
If Not ruoteSelezionate(rr2) Then GoTo NextRuota2
End If

Call GetArrayNumeriRuota(id, rr2, aEstratti)
If aEstratti(1) = 0 Then GoTo NextRuota2

gruppoUscito = False
For a = 1 To nAmbi
If AmboUscito(aEstratti, ambi(a, 1), ambi(a, 2)) Then
gruppoUscito = True
Exit For
End If
Next a

If gruppoUscito Then
trovato = True
If Not trovatoPrimo Then
rit = ritCorr
trovatoPrimo = True
dataU = DataEstrazione(id, , , "/")
estratti = ""
For j = 1 To 5
estratti = estratti & Format2(aEstratti(j)) & " "
Next j
If Ru = 12 Then estratti = NomeRuota(rr2) & ": " & estratti
End If
If ritCorr > ritMax Then ritMax = ritCorr
ritCorr = 0
Exit For
End If

NextRuota2:
Next rr2

If trovato Then
freq = freq + 1
Else
ritCorr = ritCorr + 1
End If

'========================
' SINGOLI AMBI (solo ruota singola)
'========================
If Ru <= 11 Then
Call GetArrayNumeriRuota(id, Ru, aEstratti)
For a = 1 To nAmbi
t1 = False : t2 = False
For jj = 1 To 5
If aEstratti(jj) = ambi(a, 1) Then t1 = True
If aEstratti(jj) = ambi(a, 2) Then t2 = True
Next jj

If t1 And t2 Then
freqA(a) = freqA(a) + 1
If Not trovatoPrimoA(a) Then
ritA(a) = ritCorrA(a)
trovatoPrimoA(a) = True
End If
If ritCorrA(a) > ritMaxA(a) Then ritMaxA(a) = ritCorrA(a)
ritCorrA(a) = 0
Else
ritCorrA(a) = ritCorrA(a) + 1
End If

If t1 Or t2 Then
If Not trovatoPrimoEstA(a) Then
ritEstA(a) = ritCorrEstA(a)
trovatoPrimoEstA(a) = True
End If
If ritCorrEstA(a) > ritEstMaxA(a) Then ritEstMaxA(a) = ritCorrEstA(a)
ritCorrEstA(a) = 0
Else
ritCorrEstA(a) = ritCorrEstA(a) + 1
End If

Next a
End If

Call AvanzamentoElab(idIni, idFin, idFin - id)
If ScriptInterrotto Then Exit For

Next id

'========================
' SINGOLI AMBI su "Tutte"
'========================
If Ru = 12 Then
Dim rr3, id2, aE2
Dim rA, rmA, fA, reA, remA
Dim rcA, rceA, tpA, tpeA
Dim ritMinTutte, ritEstMinTutte
Dim u1, u2, jj2

For a = 1 To nAmbi
ritMinTutte = -1 : ritEstMinTutte = -1
ritMaxA(a) = 0 : ritEstMaxA(a) = 0 : freqA(a) = 0

For rr3 = 1 To 11
If Not ruoteSelezionate(rr3) Then GoTo NextRuotaT

rA = 0 : rmA = 0 : fA = 0
reA = 0 : remA = 0
rcA = 0 : rceA = 0
tpA = False : tpeA = False

For id2 = idFin To idIni Step -1
Call GetArrayNumeriRuota(id2, rr3, aE2)
If aE2(1) = 0 Then GoTo NextEstr2

u1 = False : u2 = False
For jj2 = 1 To 5
If aE2(jj2) = ambi(a, 1) Then u1 = True
If aE2(jj2) = ambi(a, 2) Then u2 = True
Next jj2

If u1 And u2 Then
fA = fA + 1
If Not tpA Then
rA = rcA
tpA = True
End If
If rcA > rmA Then rmA = rcA
rcA = 0
Else
rcA = rcA + 1
End If

If u1 Or u2 Then
If Not tpeA Then
reA = rceA
tpeA = True
End If
If rceA > remA Then remA = rceA
rceA = 0
Else
rceA = rceA + 1
End If

NextEstr2:
Next id2

freqA(a) = freqA(a) + fA
If ritMinTutte = -1 Or rA < ritMinTutte Then ritMinTutte = rA
If rmA > ritMaxA(a) Then ritMaxA(a) = rmA
If ritEstMinTutte = -1 Or reA < ritEstMinTutte Then ritEstMinTutte = reA
If remA > ritEstMaxA(a) Then ritEstMaxA(a) = remA

NextRuotaT:
Next rr3

ritA(a) = IIf(ritMinTutte < 0, 0, ritMinTutte)
ritEstA(a) = IIf(ritEstMinTutte < 0, 0, ritEstMinTutte)

Next a
End If

'========================
' CALCOLI
'========================
If freq > 0 Then
ritMedio = Round(nEstrAnalizzate / freq, 1)
If ritMedio > 0 Then ic = Round(rit / ritMedio, 2)
If ritMax > 0 Then percentMax = Round((rit / ritMax) * 100, 1)
End If

'========================
' RIGA TABELLA
'========================
nCols = 9 + nAmbi * 5
ReDim aValori(nCols)
ReDim aColori(nCols)

If Ru <= 11 Then
nomeRuota = NomeRuota(Ru)
Else
nomeRuota = "Tutte"
End If

aValori(1) = nomeRuota
aValori(2) = rit
aValori(3) = ritMax
aValori(4) = ritMedio
aValori(5) = percentMax & "%"
aValori(6) = freq
aValori(7) = ic
aValori(8) = dataU
aValori(9) = Trim(estratti)

col = 10
For i = 1 To nAmbi
aValori(col) = ritA(i)
aValori(col + 1) = ritMaxA(i)
aValori(col + 2) = freqA(i)
aValori(col + 3) = ritEstA(i)
aValori(col + 4) = ritEstMaxA(i)
col = col + 5
Next i

For c = 1 To nCols
aColori(c) = RGB(240, 240, 240)
Next c

If ic >= 2 Then
aColori(7) = vbYellow
ElseIf ic >= 1.5 Then
aColori(7) = RGB(255, 220, 100)
End If

If percentMax >= 80 Then
aColori(5) = RGB(255, 150, 150)
End If

Call AddRigaTabella(aValori, aColori)

SkipRuota:
Next Ru

Call SetTableHeight(7)
Call CreaTabella

Call Scrivi()
Call Scrivi("Legenda IC Norm.: >2 = giallo | >1.5 = arancione", True)
Call Scrivi("Legenda % su Max: >80% = rosso chiaro", True)
Call Scrivi()
Call Scrivi("RAMCOLOTTO - Statistica Gruppo Ambi", True, , , vbBlue)

End Sub

'========================
' VERIFICA AMBO USCITO
'========================
Function AmboUscito(aE, n1, n2)
Dim j, t1, t2
t1 = False : t2 = False
For j = 1 To 5
If aE(j) = n1 Then t1 = True
If aE(j) = n2 Then t2 = True
Next j
AmboUscito = (t1 And t2)
End Function

Lo metto per curiosità. Il tempo era finito e quindi non ho potuto andare avanti.
Non ridete degli errori, deve ancora imparare
 
vi risulta :

PosAmbo 1Ambo 2Rit.MaxRit.Att
554712-1355-56159159
554855-5612-13159159
736755-5682-83194158
736882-8355-56194158
542712-1382-83158158
542882-8312-13158158
244912-1332-33132119
245032-3312-13132119
119532-3382-83122119
119682-8332-33122119
93132-3355-56119119
 
Su tutte e Nz dalla 8117

3.25;27.57 Sto:44
4.16;6.84;Sto:45
20.82;45.56;Sto:45

Rt st complessivo 25
Rt att complessivo 14
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 22 maggio 2026
    Bari
    45
    50
    76
    01
    26
    Cagliari
    61
    42
    13
    26
    21
    Firenze
    73
    48
    07
    84
    88
    Genova
    62
    77
    10
    13
    37
    Milano
    71
    24
    74
    37
    12
    Napoli
    25
    16
    57
    50
    43
    Palermo
    66
    74
    42
    70
    18
    Roma
    14
    10
    31
    69
    04
    Torino
    81
    12
    33
    84
    22
    Venezia
    51
    58
    80
    60
    02
    Nazionale
    45
    43
    82
    44
    90
    Estrazione Simbolotto
    Milano
    39
    13
    19
    38
    25
Indietro
Alto