Novità

regalino

genios

Advanced Member >PLATINUM<
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(9,10)
    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 = 5
    Scrivi "Ruota:(" & ruota & ")",True
    Scrivi

    ultimaEstrazione = EstrazioneFin()

    ' Intestazione allineata ai valori
    Scrivi "           0000000001 1111111112 2222222223 3333333334 4444444445 5555555556 6666666667 7777777778 8888888889",True
    Scrivi "           1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890",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 8
            For j = 1 To 10
                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 8 ' Gruppi di 10 numeri
            For j = 1 To 10 ' Colonne
                valore = risultato(i,j)
                valoreReale = i * 10 + j ' Questo è il valore numerico che stiamo considerando (es. 1-90)

                If valore >= 10 Then
                    valore = Chr(65 +(valore - 10)) ' 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
 
Ciao Genios
attirato dal tuo ottimo Script ho provato a far fare una macro per Excel all'AI. E, seppur ancora da correggere in qualche punto, non sembra male:

1731150780210.png

Vorrei inserirlo nel file che metto a disposizione del Forum, naturalmente se tu non hai nulla in contrario. Ho specificato nel foglio che lo Script l'hai fatto tu, io me ne sono solamente appropriato. Fammi sapere
Ciao
Baciccia
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 12 novembre 2024
    Bari
    66
    59
    34
    63
    60
    Cagliari
    41
    79
    87
    82
    90
    Firenze
    25
    43
    01
    40
    47
    Genova
    80
    66
    13
    87
    73
    Milano
    77
    45
    12
    10
    47
    Napoli
    49
    72
    70
    88
    29
    Palermo
    41
    24
    88
    47
    57
    Roma
    28
    26
    67
    89
    17
    Torino
    08
    46
    68
    53
    49
    Venezia
    09
    05
    06
    45
    26
    Nazionale
    52
    72
    36
    58
    74
    Estrazione Simbolotto
    Torino
    23
    43
    12
    08
    11

Ultimi Messaggi

Indietro
Alto