Ciao Baffo. Ho "isolato" i numeri da te richiesti. Non sono sempre 4 ( dipende da quante volte la somma/differenza isotopa si ripete nel mese ) anche se nella maggioranza dei casi si hanno due ripetizioni e quindi 4 numeri. Ho previsto le varie situazioni e i numeri sono memorizzati nelle variabili a,b,c,d,e,f,g,h che adesso dovresti riuscire a manipolare. Eventualmente, se necessario, si potrebbe limitare l'analisi ai casi con solo due ripetizioni per avere così soltanto 4 numeri.
	
	
	
		
				
			
		Codice:
	
	Option Explicit
Sub Main
   Dim Vet_Controllo(90,5),Vet_ripetuti(20),pos,Num,Num1,k,kk,conta,conta1,conta2,Nr,Mat_estr_mod(21,5),Ultimo_indice,Vet_sv(5),Vet_somma_estr(21),Mat_sver(21,5),Mat_sver_mod(21,5),Mat_dver(21,5)
   Dim es,r,j,esj,ini,fin,co,se,sv,Stringa1,Stringa2,Stringa3,Vet_contr_sv(90,5),Mat_dver_mod(21,5),Vet_contr_dv(90,5),Vet_rip_sv(20),Vet_rip_dv(20)
   Dim col,som_rip,Matrice_Estratti(21,5),Tipo,Vet_giocata(10),Linea(5),conta_rip,clp,ok,col2,a,b,c,d,e,f,g,h,var_temp,N1,N2,N3,N4,N5,N6,N7,N8
   Dim Tabs(30)
   Dim ruota(11)
   Dim ruote(11)
   Dim posta(10)
   Dim poste(10)
   clp = 18
   posta(1) = 1
   posta(2) = 1
   posta(3) = 1
   poste(2) = 1
   Tabs(1) = "Data":Tabs(2) = "Ruota":Tabs(3) = "Estratti"
   Tabs(4) = "1°":Tabs(5) = "2°":Tabs(6) = "3°":Tabs(7) = "4°":Tabs(8) = "5°":Tabs(9) = "Somme":Tabs(10) = "Somme -90"
   Tabs(11) = "S1":Tabs(12) = "S2":Tabs(13) = "S3":Tabs(14) = "S4":Tabs(15) = "S5"
   Tabs(16) = "D1":Tabs(17) = "D2":Tabs(18) = "D3":Tabs(19) = "D4":Tabs(20) = "D5"
   Tabs(21) = "S1":Tabs(22) = "S2":Tabs(23) = "S3":Tabs(24) = "S4":Tabs(25) = "S5"
   Tabs(26) = "D1":Tabs(27) = "D2":Tabs(28) = "D3":Tabs(29) = "D4":Tabs(30) = "D5"
   r = CInt(InputBox(" Scegli la ruota ",,"6"))
   col = CInt(InputBox("Scegli la colonna da analizzare                            Valori 1,2,3,4,5 per le somme                           Valori 6,7,8,9,10 per le differenze",,5))
   som_rip = CInt(InputBox("Scegli il valore della somma/differenza da ricercare",,39))
   ini = 8000 ' Inizio 2022 Circa
   Ultimo_indice = IndiceMensile(EstrazioneFin)
   If IsUltimaDelMese(EstrazioneFin) Then
      fin = EstrazioneFin
   Else
      fin = EstrazioneFin - Ultimo_indice
   End If
 
   ResetTimer
 '  For r = 1 To 11
      If r = 11 Then r = 12
      co = 0
      Scrivi FormatSpace(NomeRuota(r),80,True),1,,Giallo_,,4
      Scrivi
      For es = ini To fin
         Messaggio "elab. estr. [" &(es) & "] " & DataEstrazione(es,1) & " Elaborazione della ruota di " & NomeRuota(r)
         Call AvanzamentoElab(ini,fin,es)
         If IndiceMensile(es) = 1 Then
            Erase Vet_Controllo: Erase Vet_ripetuti: Erase Mat_estr_mod: Erase Vet_sv: Erase Vet_somma_estr:Erase Mat_sver: Erase Mat_dver:Erase Vet_contr_sv
            Erase Mat_sver_mod: Erase Mat_dver_mod:Erase Vet_contr_dv
            For j = 0 To 20
               esj = es + j
               For pos = 1 To 5
                  Num = Estratto(esj,r,pos)
                  Vet_Controllo(Num,pos) = Vet_Controllo(Num,pos) + 1
                  Matrice_Estratti(j,pos) = Num
                  Mat_estr_mod(j,pos) = Num
                  Vet_sv(pos) = Vet_sv(pos) + Num
                  Vet_somma_estr(j) = Vet_somma_estr(j) + Num
                  If j > 0 Then
                        Mat_sver(j,pos) = Fuori90(Mat_estr_mod(j,pos) + Mat_estr_mod(j - 1,pos))
                        Mat_sver_mod(j,pos) = Mat_sver(j,pos)
                        Mat_dver(j,pos) = Fuori90(Abs(Mat_estr_mod(j,pos) - Mat_estr_mod(j - 1,pos)))
                        Mat_dver_mod(j,pos) = Mat_dver(j,pos)
                        Vet_contr_sv(Mat_sver(j,pos),pos) = Vet_contr_sv(Mat_sver(j,pos),pos) + 1
                        Vet_contr_dv(Mat_dver(j,pos),pos) = Vet_contr_dv(Mat_dver(j,pos),pos) + 1
                  End If
               Next
               If IsUltimaDelMese(esj) Then Exit For
            Next
            For j = 0 To 20
               esj = es + j
               For pos = 1 To 5
                  Num = Estratto(esj,r,pos)
                  If Vet_Controllo(Num,pos) < 2 Then Mat_estr_mod(j,pos) = "  "
                  Num1 = CInt(Mat_sver(j,pos))
                  If Vet_contr_sv(Num1,pos) < 2 Then Mat_sver_mod(j,pos) = "  "
                  Num1 = CInt(Mat_dver(j,pos))
                  If Vet_contr_dv(Num1,pos) < 2 Then Mat_dver_mod(j,pos) = "  "
               Next
               If IsUltimaDelMese(esj) Then Exit For
            Next
                                                                                 'Verifica presenza somma/differenza richiesta
            ok = 0
            For j = 0 To 20
                If col <= 5 Then
                   If Mat_sver_mod(j,col) = som_rip Then ok = 1
                End If
                If col > 5 Then
                   If Mat_dver_mod(j,col - 5) = som_rip Then ok = 1
                End If
                If ok = 1 Then Exit For
            Next
         If ok = 1 Then
            co = co + 1
            Scrivi String(100,"°") & " Caso n°" & co,1
            conta = 0: conta1 = 0: conta2 = 0
            For k = 1 To 90
               For kk = 1 To 5
                  If Vet_Controllo(k,kk) > 1 Then
                     conta = conta + 1
                     Vet_ripetuti(conta) = k
                  End If
                  If Vet_contr_sv(k,kk) > 1 Then
                     conta1 = conta1 + 1
                     Vet_rip_sv(conta1) = k
                  End If
                  If Vet_contr_dv(k,kk) > 1 Then
                     conta2 = conta2 + 1
                     Vet_rip_dv(conta2) = k
                  End If
               Next
            Next
            Scrivi
            EliminaRipetuti Vet_ripetuti
            EliminaRipetuti Vet_rip_sv
            EliminaRipetuti Vet_rip_dv
            Scrivi
            Scrivi
                                                                              ' ************  TABELLA   *********
            Call InitTabella(Tabs,RGB(224,224,224),,,2,5)' inzializzazione
            ReDim tabs2(30)
            For j = 0 To 20
               esj = es + j
               tabs2(1) = DataEstrazione(esj)
               tabs2(2) = SiglaRuota(r)
               tabs2(3) = StringaEstratti(esj,r)
               For pos = 1 To 5
                  tabs2(3 + pos) = Mat_estr_mod(j,pos)
               Next
               tabs2(9) = Vet_somma_estr(j)
               tabs2(10) = Fuori90(Vet_somma_estr(j))
               For pos = 1 To 5
                    tabs2(10 + pos) = Mat_sver(j,pos) '*****************
                    tabs2(15 + pos) = Mat_dver(j,pos) '*****************
                    tabs2(20 + pos) = Mat_sver_mod(j,pos) '*****************
                    tabs2(25 + pos) = Mat_dver_mod(j,pos) '*****************
               Next
               Call AddRigaTabella(tabs2,,,2)
               Call SetColoreCella(9,6,0)
               Call SetColoreCella(10,4,2)
               For k = 1 To 5
                  Call SetColoreCella(k + 3,5,1)
                  Call SetColoreCella(20 + k,5,1)
                  Call SetColoreCella(25 + k,5,2)
               Next
            If IsUltimaDelMese(esj) Then Exit For
            Next
            Stringa1 = ""
            For pos = 1 To 5
               If Vet_sv(pos) > 0 Then Stringa1 = Stringa1 &(Vet_sv(pos)) & "."
            Next
            tabs2(1) = "Somma Verticale"
            tabs2(2) = SiglaRuota(r)
            tabs2(3) = Stringa1
            tabs2(4) = "":tabs2(5) = "":tabs2(6) = "":tabs2(7) = "":tabs2(8) = "":tabs2(9) = "":tabs2(10) = ""
            tabs2(11) = "":tabs2(12) = "":tabs2(13) = "":tabs2(14) = "":tabs2(15) = "":tabs2(16) = "":tabs2(17) = "":tabs2(18) = "":tabs2(19) = "":tabs2(20) = ""
            tabs2(21) = "":tabs2(22) = "":tabs2(23) = "":tabs2(24) = "":tabs2(25) = "":tabs2(26) = "":tabs2(27) = "":tabs2(28) = "":tabs2(29) = "":tabs2(30) = ""
            Call AddRigaTabella(tabs2,,,2)
            Call SetColoreCella(1,6,2):Call SetColoreCella(2,5,2):Call SetColoreCella(3,6,2)
            Stringa2 = ""
            For pos = 1 To 5
               If Vet_sv(pos) > 0 Then Stringa2 = Stringa2 & Fuori90(Vet_sv(pos)) & "."
            Next
            Stringa3 = ""
            For pos = 1 To 5
               If Vet_ripetuti(pos) > 0 Then Stringa3 = Stringa3 & Fuori90(Vet_ripetuti(pos)) & "."
            Next
            tabs2(1) = "Somma V. -90"
            tabs2(2) = SiglaRuota(r)
            tabs2(3) = Stringa2
            tabs2(4) = "":tabs2(5) = "":tabs2(6) = "":tabs2(7) = "":tabs2(8) = "":tabs2(9) = ""::tabs2(10) = "":
            Call AddRigaTabella(tabs2,,,2)
            Call SetColoreCella(1,4,2):Call SetColoreCella(2,5,2):Call SetColoreCella(3,4,2)
            tabs2(1) = "Nr ripetuti isotopi"
            tabs2(2) = SiglaRuota(r)
            tabs2(3) = Stringa3
            Call AddRigaTabella(tabs2,,,2)
            Call SetColoreCella(1,3,2):Call SetColoreCella(2,5,2):Call SetColoreCella(3,3,2)
            Call CreaTabella()
            Scrivi
                                                                       
                                                                  'Ricerca colonnare su ruota
            Erase Linea: Erase Vet_giocata
            conta_rip = 0
            If col > 0 And col <= 5 Then
                 For j = 0 To 20
                    esj = es + j
                    If som_rip = Mat_sver_mod(j,col) Then
                        conta_rip = conta_rip + 1
                        Linea(conta_rip) = j
                    End If
                    If IsUltimaDelMese(esj) Then Exit For
                 Next
            End If
            If col > 5 And col <= 10 Then
                 For j = 0 To 20
                    esj = es + j
                    If som_rip = Mat_dver_mod(j,col - 5) Then
                        conta_rip = conta_rip + 1
                        Linea(conta_rip) = j
                    End If
                    If IsUltimaDelMese(esj) Then Exit For
                 Next
            End If
            col2 = col
            If col2 > 5 Then col2 = col2 - 5
            For k = 1 To conta_rip
               Vet_giocata((k - 1)*2 + 1) = Matrice_Estratti(Linea(k),col2)
               Vet_giocata((k - 1)*2 + 2) = Matrice_Estratti(Linea(k) - 1,col2)
            Next
            EliminaRipetuti(Vet_giocata)
            If col > 5 Then Scrivi "Differenza consecutivi isotopi = " & som_rip & " in posizione " & col - 5 & "   ",True,0,,2,2
            If col <= 5 Then Scrivi "Somma isotopi " & som_rip & " in posizione " & col & "   ",True,0,,1,2
            For k = 1 To conta_rip*2
                  If Vet_giocata(k) > 0 Then Scrivi Vet_giocata(k) & ".",1,False,,2
            Next    
            If Vet_giocata(1)>0 Then a=Vet_giocata(1): Scrivi "    a=" & a,1,False
            If Vet_giocata(2)>0 Then b=Vet_giocata(2): Scrivi "    b=" & b,1,False
            If Vet_giocata(3)>0 Then c=Vet_giocata(3): Scrivi "    c=" & c,1,False
            If Vet_giocata(4)>0 Then d=Vet_giocata(4): Scrivi "    d=" & d,1,False
            If Vet_giocata(5)>0 Then e=Vet_giocata(5): Scrivi "    e=" & e,1,False
            If Vet_giocata(6)>0 Then f=Vet_giocata(6): Scrivi "    f=" & f,1,False
            If Vet_giocata(7)>0 Then g=Vet_giocata(7): Scrivi "    g=" & g,1,False
            If Vet_giocata(8)>0 Then h=Vet_giocata(8): Scrivi "    h=" & h,1,False
            Scrivi
            Scrivi String(100,"°"),1
            ruota(1) = r
            ruote(1) = 11
            ImpostaGiocata 1,Vet_giocata,ruota,posta,clp
            ImpostaGiocata 2,Vet_giocata,ruote,poste,clp
            Gioca esj,1,,1
            Scrivi
            If esj + 1 > EstrazioneFin Then Exit For
            Scrivi String(75,"-"),1
            Scrivi
            Scrivi "Controllo visivo Prima/Ultima Mese ",1,,,1,2
            Scrivi "Prima  Estrazione Mese " & DataEstrazione(es) & " - " & SiglaRuota(r) & " - " & StringaEstratti(es,r),1
            Scrivi "Ultima Estrazione Mese " & DataEstrazione(esj) & " - " & SiglaRuota(r) & " - " & StringaEstratti(esj,r),1
            Scrivi String(75,"-"),1
            Scrivi
         End If
       End If
      Next
  'next
   Scrivi String(100,"*")
   ColoreTesto 2
   Scrivi" casi trovati : " & co,1
   ColoreTesto 0
   Scrivi String(100," * ")
   ScriviResoconto
   TestoInBandaPassante(" Idea e Script by Maldor/BaffoBlù"),1,3,0
End Sub 
 
		
 
     
     
     
     
    