Novità

Aiuto per questo script

Antonio Pagano

Super member
Buonasera. Chiedo a chi può aiutarmi a mettere in ordine l'outpu di questo script, In origine metteva in colonna le decina ora ho cercato di ordinarlo per quindicina ma oltre non riesco a fare. Se qualcuno può aiutarmi ringrazio anticipatamente. Buona serata.

Sub Main()
Dim ruota,pos,es,numero,ultimaEstrazione,estrazioneIniziale,estrazioneFinale
Dim numeriRicerca(5),posizioni(5)
Dim i,j,n,posIndex
Dim conteggioNumeri(90),risultato(8,15)
Dim valore
Dim parole(150),colori(150),grassetti(150),indice,valoreReale
Dim estratti(5),estrattiPrecedenti(5)
Dim coloreRosso,coloreNero
Dim coloraRossoPrecedenti(5),coloraRossoCorrenti(5)

coloreRosso = vbRed
coloreNero = vbBlack

ruota = 1
Scrivi "Ruota:(" & NomeRuota(ruota) & ")",True
Scrivi

ultimaEstrazione = EstrazioneFin()

' Intestazione allineata ai valori
Scrivi " 000000000111111 111122222222223 333333333444444 444455555555556 666666666777777 777788888888889",True
Scrivi " 123456789012345 678901234567890 123456789012345 678901234567890 123456789012345 678901234567890",True
Scrivi

' Inizializza estratti precedenti a zero
For i = 1 To 5
estrattiPrecedenti(i) = 0
Next

For k = 29 To 0 Step - 1
estrazioneIniziale = ultimaEstrazione - k

' Recupera i numeri estratti per l'estrazione corrente
For i = 1 To 5
numeriRicerca(i) = Estratto(estrazioneIniziale,ruota,i)
Next

' Salva gli estratti da visualizzare alla fine
For i = 1 To 5
estratti(i) = numeriRicerca(i)
Next

estrazioneFinale = estrazioneIniziale - 2900

For n = 1 To 90
conteggioNumeri(n) = 0
Next

' Calcola il conteggio dei numeri nelle estrazioni
For i = 1 To 5
Dim contatoreOccorrenze
contatoreOccorrenze = 0

For es = estrazioneIniziale To estrazioneFinale Step - 1
numero = Estratto(es,ruota,i)
If numero = numeriRicerca(i) Then
contatoreOccorrenze = contatoreOccorrenze + 1

' Calcolo per la decina della spia
Dim decinaSpia
decinaSpia = Int((numeriRicerca(i) - 1) / 10) ' Calcola la decina della spia

' Verifica la posizione della spia
Dim posSpia
posSpia = i

' Conta tutti i numeri appartenenti alla decina della spia nelle successive 12 estrazioni
For j = 1 To 12
If(es + j) <= estrazioneIniziale Then
For posIndex = 1 To 5
numero = Estratto(es + j,ruota,posIndex)
If numero > 0 And numero <= 90 Then
' Verifica se il numero appartiene alla stessa decina della spia
If Int((numero - 1) / 10) = decinaSpia Then
' Controlla se la posizione è valida per la spia
Dim posVerifica
posVerifica =(posSpia + j - 1) Mod 5 + 1
If posVerifica = posIndex Or posVerifica =((posIndex Mod 5) + 1) Then
conteggioNumeri(numero) = conteggioNumeri(numero) + 1
End If
End If
End If
Next
End If
Next
End If

If contatoreOccorrenze >= 12 Then Exit For
Next
Next

For i = 0 To 5
For j = 1 To 15
risultato(i,j) = conteggioNumeri(i * 10 + j)
Next
Next

indice = 0
parole(0) = DataEstrazione(estrazioneIniziale) & " " ' Aggiungi la data con uno spazio all'inizio
colori(0) = coloreNero
grassetti(0) = True
indice = 1 ' Partiamo dall'indice 1 per i valori

' Ciclo per la creazione delle parole formattate e colorate
For i = 0 To 5 ' Gruppi di 10 numeri
For j = 1 To 15 ' Colonne
valore = risultato(i,j)
valoreReale = i * 15 + j ' Questo è il valore numerico che stiamo considerando (es. 1-90)

If valore >= 15 Then
valore = Chr(65 +(valore - 15)) ' Converte valori >= 10 in A, B, etc.
ElseIf valore = 0 Then
valore = "*" ' Sostituisce lo zero con un asterisco
End If

' Gestione della colorazione tenendo conto degli spazi e dei valori alfanumerici
If IsInArray(valoreReale,numeriRicerca) Then
colori(indice) = coloreRosso
Else
colori(indice) = coloreNero
End If

' Assicurati che valore sia corretto per la visualizzazione
If IsNumeric(valore) Or valore = "*" Then
parole(indice) = FormatSpace(valore,0,False) ' Usa FormatSpace anche per *
Else
parole(indice) = valore ' Aggiungi il valore letterale (A, B, C, ...)
End If

grassetti(indice) = True
indice = indice + 1
Next

' Aggiungi uno spazio ogni 10 numeri, ma senza spazio tra le presenze
parole(indice) = " " ' Aggiungi lo spazio tra le decine
colori(indice) = coloreNero
grassetti(indice) = True
indice = indice + 1
Next

' Determina quali estratti colorare di rosso per l'estrazione corrente e precedente
If k < 29 Then ' Solo se non è la prima iterazione
For i = 1 To 5
' Verifica se la decina è la stessa nella stessa posizione estrazionale
If Int((estratti(i) - 1) / 10) = Int((estrattiPrecedenti(i) - 1) / 10) Then
coloraRossoCorrenti(i) = True
coloraRossoPrecedenti(i) = True
Else
coloraRossoCorrenti(i) = False
coloraRossoPrecedenti(i) = False
End If
Next
End If

' Aggiungi gli estratti dell'estrazione corrente alla fine della riga con Format2 e separati da un punto
For i = 1 To 5
' Colorazione per gli estratti dell'estrazione corrente
If coloraRossoCorrenti(i) Then
colori(indice) = coloreRosso
Else
colori(indice) = coloreNero
End If

parole(indice) = Format2(estratti(i)) & "."
grassetti(indice) = True
indice = indice + 1
Next

' Memorizza i numeri correnti per la verifica nelle estrazioni successive
For i = 1 To 5
estrattiPrecedenti(i) = estratti(i)
Next

' Stampa la riga con la data dell'estrazione, i valori colorati e gli estratti alla fine
ScriviConColori parole,colori,grassetti
Next
End Sub

Function IsInArray(valore,arr)
Dim i
IsInArray = False
For i = LBound(arr) To UBound(arr)
If arr(i) = valore Then
IsInArray = True
Exit Function
End If
Next
End Function
 
intendi in questo modo,
Codice:
Sub Main()
    Dim ruota, pos, es, numero, ultimaEstrazione, estrazioneIniziale, estrazioneFinale
    Dim numeriRicerca(5), posizioni(5)
    Dim i, j, n, posIndex
    Dim conteggioNumeri(90), risultato(8, 6)
    Dim valore
    Dim parole(150), colori(150), grassetti(150), indice, valoreReale
    Dim estratti(5), estrattiPrecedenti(5)
    Dim coloreRosso, coloreNero
    Dim coloraRossoPrecedenti(5), coloraRossoCorrenti(5)

    coloreRosso = vbRed
    coloreNero = vbBlack

    ruota = 3
    Scrivi "Ruota:(" & NomeRuota(ruota) & ")", True
    Scrivi

    ultimaEstrazione = EstrazioneFin()

    ' Intestazione allineata ai valori
    Scrivi " 000000000111111 112222222223 334444444445 555666666777 788888888889", True
    Scrivi " 123456789012345 678901234567890 123456789012345 678901234567890 123456789012345", True
    Scrivi

    ' Inizializza estratti precedenti a zero
    For i = 1 To 5
        estrattiPrecedenti(i) = 0
    Next

    For k = 29 To 0 Step - 1
        estrazioneIniziale = ultimaEstrazione - k

        ' Recupera i numeri estratti per l'estrazione corrente
        For i = 1 To 5
            numeriRicerca(i) = Estratto(estrazioneIniziale, ruota, i)
        Next

        ' Salva gli estratti da visualizzare alla fine
        For i = 1 To 5
            estratti(i) = numeriRicerca(i)
        Next

        estrazioneFinale = estrazioneIniziale - 2900

        For n = 1 To 90
            conteggioNumeri(n) = 0
        Next

        ' Calcola il conteggio dei numeri nelle estrazioni
        For i = 1 To 5
            Dim contatoreOccorrenze
            contatoreOccorrenze = 0

            For es = estrazioneIniziale To estrazioneFinale Step - 1
                numero = Estratto(es, ruota, i)
                If numero = numeriRicerca(i) Then
                    contatoreOccorrenze = contatoreOccorrenze + 1

                    ' Calcolo per la quindicina della spia
                    Dim quindicinaSpia
                    quindicinaSpia = Int((numeriRicerca(i) - 1) / 15) ' Calcola la quindicina della spia

                    ' Verifica la posizione della spia
                    Dim posSpia
                    posSpia = i

                    ' Conta tutti i numeri appartenenti alla quindicina della spia nelle successive 12 estrazioni
                    For j = 1 To 12
                        If (es + j) <= estrazioneIniziale Then
                            For posIndex = 1 To 5
                                numero = Estratto(es + j, ruota, posIndex)
                                If numero > 0 And numero <= 90 Then
                                    ' Verifica se il numero appartiene alla stessa quindicina della spia
                                    If Int((numero - 1) / 15) = quindicinaSpia Then
                                        ' Controlla se la posizione è valida per la spia
                                        Dim posVerifica
                                        posVerifica = (posSpia + j - 1) Mod 5 + 1
                                        If posVerifica = posIndex Or posVerifica = ((posIndex Mod 5) + 1) Then
                                            conteggioNumeri(numero) = conteggioNumeri(numero) + 1
                                        End If
                                    End If
                                End If
                            Next
                        End If
                    Next
                End If

                If contatoreOccorrenze >= 12 Then Exit For
            Next
        Next

        ' Aggiorna il campo per le quindicine
        For i = 0 To 5
            For j = 1 To 6 ' Cambiato da 15 a 6 per riflettere le quindicine
                risultato(i, j) = conteggioNumeri(i * 15 + j)
            Next
        Next

        indice = 0
        parole(0) = DataEstrazione(estrazioneIniziale) & " " ' Aggiungi la data con uno spazio all'inizio
        colori(0) = coloreNero
        grassetti(0) = True
        indice = 1 ' Partiamo dall'indice 1 per i valori

        ' Ciclo per la creazione delle parole formattate e colorate
        For i = 0 To 5 ' Gruppi di 15 numeri
            For j = 1 To 6 ' Colonne
                valore = risultato(i, j)
                valoreReale = i * 15 + j ' Questo è il valore numerico che stiamo considerando (es. 1-90)

                If valore >= 15 Then
                    valore = Chr(65 + (valore - 15)) ' Converte valori >= 10 in A, B, etc.
                ElseIf valore = 0 Then
                    valore = "*" ' Sostituisce lo zero con un asterisco
                End If

                ' Gestione della colorazione tenendo conto degli spazi e dei valori alfanumerici
                If IsInArray(valoreReale, numeriRicerca) Then
                    colori(indice) = coloreRosso
                Else
                    colori(indice) = coloreNero
                End If

                ' Assicurati che valore sia corretto per la visualizzazione
                If IsNumeric(valore) Or valore = "*" Then
                    parole(indice) = FormatSpace(valore, 0, False) ' Usa FormatSpace anche per *
                Else
                    parole(indice) = valore ' Aggiungi il valore letterale (A, B, C, ...)
                End If

                grassetti(indice) = True
                indice = indice + 1
            Next

            ' Aggiungi uno spazio ogni 10 numeri, ma senza spazio tra le presenze
            parole(indice) = " " ' Aggiungi lo spazio tra le quindicine
            colori(indice) = coloreNero
            grassetti(indice) = True
            indice = indice + 1
        Next

        ' Determina quali estratti colorare di rosso per l'estrazione corrente e precedente
        If k < 29 Then ' Solo se non è la prima iterazione
            For i = 1 To 5
                ' Verifica se la quindicina è la stessa nella stessa posizione estrazionale
                If Int((estratti(i) - 1) / 15) = Int((estrattiPrecedenti(i) - 1) / 15) Then
                    coloraRossoCorrenti(i) = True
                    coloraRossoPrecedenti(i) = True
                Else
                    coloraRossoCorrenti(i) = False
                    coloraRossoPrecedenti(i) = False
                End If
            Next
        End If

        ' Aggiungi gli estratti dell'estrazione corrente alla fine della riga con Format2 e separati da un punto
        For i = 1 To 5
            ' Colorazione per gli estratti dell'estrazione corrente
            If coloraRossoCorrenti(i) Then
                colori(indice) = coloreRosso
            Else
                colori(indice) = coloreNero
            End If

            parole(indice) = Format2(estratti(i)) & "."
            grassetti(indice) = True
            indice = indice + 1
        Next

        ' Memorizza i numeri correnti per la verifica nelle estrazioni successive
        For i = 1 To 5
            estrattiPrecedenti(i) = estratti(i)
        Next

        ' Stampa la riga con la data dell'estrazione, i valori colorati e gli estratti alla fine
        ScriviConColori parole, colori, grassetti
    Next
End Sub

Function IsInArray(valore, arr)
    Dim i
    IsInArray = False
    For i = LBound(arr) To UBound(arr)
        If arr(i) = valore Then
            IsInArray = True
            Exit Function
        End If
    Next
End Function
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 10 gennaio 2025
    Bari
    40
    61
    11
    86
    37
    Cagliari
    31
    02
    51
    68
    87
    Firenze
    73
    55
    34
    52
    18
    Genova
    11
    40
    27
    82
    20
    Milano
    80
    71
    65
    19
    10
    Napoli
    50
    30
    03
    01
    36
    Palermo
    66
    42
    43
    76
    89
    Roma
    05
    22
    62
    35
    39
    Torino
    17
    58
    62
    86
    69
    Venezia
    43
    89
    14
    04
    40
    Nazionale
    64
    76
    35
    40
    19
    Estrazione Simbolotto
    Bari
    08
    07
    37
    33
    38
Indietro
Alto