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
 
Lottopython grazie per essere intervenuto, No così era in origine io lo voglio per 15dicina come ti allego l'immagine vorrei solo che venissero incolonnate perfettamente i dati.
 

Allegati

  • per15.jpg
    per15.jpg
    547,4 KB · Visite: 44
vediamo cosi
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, 15)
    Dim valore
    Dim parole(200), colori(200), grassetti(200), 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 extra per distanziare le colonne
            If i < 5 Then
                parole(indice) = "     " ' Aggiungi uno spazio extra per la separazione
                colori(indice) = coloreNero
                grassetti(indice) = True
                indice = indice + 1
            End If
        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
 
oppure
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, 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) = FormatSpace(DataEstrazione(estrazioneIniziale), 20, False) ' 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, 3, 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 1 decina, evitando spazi tra le presenze
            If i < 5 Then
                parole(indice) = "  " ' Aggiungi lo spazio tra le decine
                colori(indice) = coloreNero
                grassetti(indice) = True
                indice = indice + 1
            End If
        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) = FormatSpace(Format2(estratti(i)), 5, False) & " ."
            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
 
comincia con questo
Codice:
     ' Intestazione allineata ai valori
     Scrivi "           000000000111111 111122222222223 333333333444444 444455555555556 666666666777777 777788888888889",True
     Scrivi "           123456789012345 678901234567890 123456789012345 678901234567890 123456789012345 678901234567890",True
     Scrivi
per il resto ( alfanumerico ) chiedi a Genius
 
Ho modificato così:
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(6,15)
   Dim valore,ce,tipo
   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
   tipo = "*" 'Sostituisce lo zero con un asterisco
   ce = InputBox("Quante estrazioni vuoi controllare (ciclo)?",,28)
   ce = ce - 1
   'ruota = 1
   ruota = ScegliRuota
   'Scrivi "Ruota:(" & ruota & ")",True
   Scrivi UCase(NomeRuota(ruota)),1,0,,,4
   Scrivi FormatSpace(Date,118,1),1
   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 = ce To 0 Step - 1 'ciclo di 28
      'For k = 29 To 0 Step - 1 'ciclo di 30
      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,0,0,"-") & "   " ' Aggiungi la data con uno spazio all'inizio
      colori(0) = coloreNero
      'grassetti(0) = True
      grassetti(0) = False
      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 * 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
               valore = tipo ' 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
            If IsNumeric(valore) Or valore = tipo 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
            grassetti(indice) = False
            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
         grassetti(indice) = False
         indice = indice + 1
      Next
      ' Determina quali estratti colorare di rosso per l'estrazione corrente e precedente
      If k < ce 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) = coloreNero
         Else
            colori(indice) = coloreNero
         End If
         'parole(indice) = Format2(estratti(i)) & "."
         parole(indice) = FormatSpace(estratti(i),3,1)
         'grassetti(indice) = True
         grassetti(indice) = False
         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
 
Risultassero come nel file allegato sarebbero perfetti!
Quello da te postato è per me il Mastrolettere
ho solo aggiornato BA ultime 6 estrazioni
1736762721998.png
Come vedi la disposizione in Decine (mio) o quindicine (tuo) non cambia i valori delle indicazioni
Saluti

Ps:
Per i diffidenti, inserisco anche delle precedenti alle tue del 28/11 sempre di BA
1736763705280.png...
 
Ultima modifica:

cHeRe62 è perfetto così grazie. Max63 grazie. claudio se i tuoi risultati sono giusti il tuo è più leggibbile. A questo punto ciedo a chi ne sà più di me se la stessa tabella si potrebbe avere per figura. Esempio da 1 a 10 andrebbero segnalato i numeri di fugura 1 e così via. Se potete aiutarmi vi ringrazio.​

 
Quello da te postato è per me il Mastrolettere
ho solo aggiornato BA ultime 6 estrazioni
Vedi l'allegato 2296125
Come vedi la disposizione in Decine (mio) o quindicine (tuo) non cambia i valori delle indicazioni
Saluti

Ps:
Per i diffidenti, inserisco anche delle precedenti alle tue del 28/11 sempre di BA
Vedi l'allegato 2296129...
Ciao claudio8...Non so come lo chiama Pazzaglia...Diciamo che il tuo é il classico mastrolettere di Rosario Rametti della sua Previsionistica Razionale che purtroppo ha altra lettura rispetto al Ratio di Pazzaglia.
Comunque ci siamo.

saluti a tutti!
 

Allegati

  • Screenshot 2025-01-13 153629.png
    Screenshot 2025-01-13 153629.png
    108,2 KB · Visite: 29
Ciao claudio8...Non so come lo chiama Pazzaglia...Diciamo che il tuo é il classico mastrolettere di Rosario Rametti della sua Previsionistica Razionale che purtroppo ha altra lettura rispetto al Ratio di Pazzaglia.
Comunque ci siamo.

saluti a tutti!
E' la stessa tabella del RAZIO.... di Pazzaglia, al post 10.
Unica differenza la schematizzazione in Decine invece delle Quindicine del tuo Razio.
La Elaborazione è la stessa, la lettura è sempre secondo la " Visione" del lettore.
 
Ultima modifica:
Buongiorno a voi. Vorrei chiedere a chi sà programmare se si può fare un aggiunta a questo script. Aggiungo come dovrebbe essere il risultato.Grazie
 

Allegati

  • CORREZIONE.jpg
    CORREZIONE.jpg
    296,7 KB · Visite: 12

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 14 gennaio 2025
    Bari
    41
    25
    12
    73
    55
    Cagliari
    54
    20
    48
    32
    67
    Firenze
    75
    23
    68
    10
    38
    Genova
    33
    27
    81
    70
    64
    Milano
    68
    01
    64
    86
    87
    Napoli
    47
    75
    45
    10
    21
    Palermo
    55
    86
    33
    53
    70
    Roma
    88
    78
    61
    06
    07
    Torino
    76
    08
    23
    61
    82
    Venezia
    25
    15
    49
    21
    81
    Nazionale
    70
    10
    32
    78
    07
    Estrazione Simbolotto
    Bari
    07
    14
    28
    45
    31
Indietro
Alto