Novità

Per magia o altro bravissimo scripter come si implementa la tabella colorata qui?

lotto_tom75

Advanced Premium Member
Codice:
Option Explicit
Class clsCombinazione
   Private aNum
   Private aBNum
   Private mFrequenze
   Private mPresenze
   Private mClasse
   Private mKey
   Private aIdEstr
   Private nTrov

   Private Sub Class_Initialize()
       mFrequenze = 0
       mPresenze = 0
       ReDim aBnum(90)
   End Sub

   Public Property Get Classe
      Classe = mClasse
   End Property
   Public Property Let Classe(v)
      mClasse = v
   End Property
   Public Property Get ArrayNum
      ArrayNum = aNum
   End Property
   Public Property Get Key
      Key = mKey
   End Property
   Public Property Let Key(v)
      mKey = v
   End Property
   Public Property Get Presenze
      Presenze = mPresenze
   End Property
   Public Property Get Frequenze
      Frequenze = mFrequenze
   End Property

   Public Property Get Combinazione
      Combinazione = StringaNumeri(aNum,,True)
   End Property
   Sub IncrementaFrequenze
      mFrequenze = mFrequenze + 1
   End Sub

   Sub SetNumeri(aNumTmp)
      Dim k
      aNum = aNumTmp
      For k = 1 To UBound(aNum)
         aBNum(aNum(k)) = True
      Next
   End Sub
   Sub CalcolaFrequenza(aRuote,nSorte,nIni,nFin)
      mFrequenze = SerieFreqTurbo(nIni,nFin,aNum,aRuote,nSorte)

   End Sub
   Sub CalcolaPresenze(aRuote,nSorte,Inizio,Fine)

      Dim k,r,e,nPunti,aNumRuota,nPresenze
      Dim aB
      nPresenze = 0

      For k = Inizio To Fine
         For r = 1 To UBound(aRuote)
               Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

               nPunti = 0
               For e = 1 To 5
                  If aBNum(aNumRuota(e)) Then
                     nPunti = nPunti + 1
                  End If
               Next
               If nPunti >= nSorte Then
                  nPresenze = nPresenze + 1
               End If
         Next
      Next

      mPresenze = nPresenze

   End Sub

   Sub AddIdEstr(v)
      nTrov = nTrov + 1
      ReDim Preserve aIdEstr(nTrov)
      aIdEstr(nTrov) = v

   End Sub
End Class

Private aEstrattiBool

Sub Main
   Dim nEstrDaUSare,nClasse,nSorte,CollLunghette,nIni,nFin,k

   nEstrDaUSare = 18
   nClasse = 3
   nSorte = 1
  ' ReDim aRuote(10)
'   For k = 1 To 10
'      aRuote (k) = k
'   Next
   ReDim aRuote(1)
   aRuote(1) = FI_


   nIni =(EstrazioneFin - nEstrDaUSare) + 1
   nFin = EstrazioneFin
   Set CollLunghette = GetCollLunghettaMigliori(nIni,nFin,nClasse,nSorte,aRuote,nEstrDaUSare)
   Call AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   MsgBox TempoTrascorso


End Sub
Sub AlimentaTabOutput(CollLunghette,aRuote,nClasse,nSorte)
   Dim av,cLung

   Scrivi "Ruote  : " & StringaRuote(aRuote)
   Scrivi "Classe : " & nClasse
   Scrivi "Sorte  : " & nSorte


   av = Array("","Lunghetta","Frequenza","Presenza")
   Call InitTabella(av)

   For Each cLung In CollLunghette
      av(1) = cLung.Combinazione
      av(2) = cLung.Frequenze
      av(3) = cLung.Presenze
      Call AddRigaTabella(av)
   Next
   Call CreaTabella

End Sub
Function GetCollLunghettaMigliori(Inizio,Fine,nClasse,nSorte,aRuote,nEstrUsate)

   Dim CollComb,cComb
   Dim CollLung,cLung
   Dim k,j,e
   Dim nFatte,nDaFare
   Dim nRetFrequenze

   Dim sKey
   ReDim aCol(nSorte)
   ReDim abNumValidi(90)
   ReDim aEstrattiBool(nEstrUsate,12,90)
   Call AlimentaArrayEstrattiBool(aEstrattiBool,Inizio,Fine,aRuote)

   Set CollComb = GetNewCollection
   Set CollLung = GetNewCollection

   ' alimento una collection con tutte le combinazioni di classe <nSorte> che si
   ' formano con le cinquine comprese nel range interessato
   ' di ogni singola combinazione si calcolano le frequenze

Dim quantitanumeriscelti
'ReDim aNum(0)
'quantitanumeriscelti = ScegliNumeri(aNum)


   For k = Inizio To Fine
      For j = 1 To UBound(aRuote)
         ReDim aNum(0)
         Call GetArrayNumeriRuota(k,aRuote(j),aNum)
         For e = 1 To 5
            abNumValidi(aNum(e)) = True
         Next
         Call OrdinaMatrice(aNum,1)

         Call InitSviluppoIntegrale(aNum,nSorte)
         Do While GetCombSviluppo(aCol)
            sKey = "k" & StringaNumeri(aCol,,True)
            If GetItemCollection(CollComb,sKey,cComb) Then
               cComb.IncrementaFrequenze
            Else
               Set cComb = New clsCombinazione
               cComb.Classe = nSorte
               cComb.SetNumeri(aCol)
               cComb.key = sKey
               cComb.IncrementaFrequenze
               Call AddItemColl(CollComb,cComb,sKey)
            End If
         Loop

      Next
      Call AvanzamentoElab(Inizio,Fine,k)
   Next
   Call AvanzamentoElab(Inizio,Fine,Inizio)

   ' ordino la collection contenente tutte le combinazioni di classe <nSorte> per il valore frequenza
   Call OrdinaItemCollection(CollComb,"Frequenze","Key")

   ' da ognuna delle combinazioni base scasturirà una lunghetta quindi ciclo su tutte
   ' le combinazioni base presenti nella collection e per ciascuna costruirò una lunghetta
   nDaFare = CollComb.count
   nFatte = 0
   For Each cComb In CollComb


      ReDim aRetCol(nClasse)
      ' ottiene la lunghetta "migliore" che contiene la combinazione base
      If GetLung(cComb,aRetCol,nRetFrequenze,CollComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi,nEstrUsate) Then

          ' aggiungo la lunghetta trovata in una nuova collection
          Set cLung = New clsCombinazione
          cLung.Classe = nClasse
          Call OrdinaMatrice(aRetCol,1)
          cLung.SetNumeri(aRetCol)
          sKey = "k" & StringaNumeri(aRetCol,,True)
          Call cLung.CalcolaFrequenza(aRuote,nSorte,Inizio,Fine)
          Call cLung.CalcolaPresenze(aRuote,nSorte,Inizio,Fine)


          Call AddItemInColl(cLung,sKey,CollLung)


      End If

      nFatte = nFatte + 1
      If nFatte Mod 10 = 0 Then
         Call AvanzamentoElab(1,nDaFare,nFatte)
         If ScriptInterrotto Then Exit For
         DoEventsEx
      End If
   Next

   ' ordino la collection delle lunghette trovate per poi mostrarle in output
   Call OrdinaItemCollection(CollLung,"Presenze")
   Set GetCollLunghettaMigliori = CollLung


End Function
Sub AlimentaArrayEstrattiBool(aEstrattiBool,Inizio,Fine,aRuote)
   Dim idEstr,i,r,e
   ReDim aNum(5)
   For idEstr = Inizio To Fine
      i = i + 1
      For r = 1 To UBound(aRuote)
         Call GetArrayNumeriRuota(idEstr,aRuote(r),aNum)
         For e = 1 To 5
            aEstrattiBool(i,aRuote(r),aNum(e)) = True
         Next
      Next
   Next

End Sub
Sub AddItemInColl(cItem,sKey,Coll)
   On Error Resume Next

   Coll.Add cItem,sKey
   If Err <> 0 Then Err.Clear
End Sub
Function GetLung(cComb,aRetCol,nRetPres,collComb,Inizio,Fine,aRuote,nSorte,nClasse,abNumValidi,nQtEstrUsate)

   ' a partire dalla combinazione base costruisce la lunghetta migliore (piu prolifica per presenze)

   Dim nPos,n,nPresMax,nNum,nPresTmp,k,aNumBase
   Dim aNumDaSvil,nQtNumDaSvil,aColDaPrendere,bFound
   ReDim aBUsati(90)

   Dim objSvil
   Dim sKey
   Dim cCombTmp
   Dim nClasseSvilTmp


   ' inizializzo un nuovo motore di sviluppo
   Set objSvil = GetMotoreSviluppoIntegrale
   ' leggo i numeri della combinazione base
   aNumBase = cComb.ArrayNum
   For k = 1 To cComb.Classe
      aRetCol(k) = aNumBase(k)
      aBUsati(aRetCol(k)) = True
   Next


   ' faccio in clclo che dura fino a quando la lunghetta non arriva a contenere la quantità
   ' di numeri voluta
   ' la lunghetta parte con i numeri della combinazione base
   ' i numeri vengono aggiunti sviluppandoli con combinazioni di classe <nSorte>
   ' al termine del ciclo do sia avrà la combinazione migliore da aggiungere
   ' alla lunghetta base
   ' il giro continua finche la lunghetta non raggiunge la quantita di numeri voluti
   nPos = cComb.Classe
   Do While nPos < nClasse
            ' calcolo  la classe per sviluppare le combinazioni da testare insieme ai numeri gia presenti
            ' nella lunghetta
            ' se possibile la classe di sviluppo è pari a <nSorte> senno viene calcolata e assume un valore inferiore

            If nClasse - nPos >= nSorte Then
               nClasseSvilTmp = nSorte
            Else
               nClasseSvilTmp = nClasse - nPos
            End If
            ' predispongo la lunghetta per accogliere i numeri che otterremo dallo sviluppo
            ReDim Preserve aRetCol(nPos + nClasseSvilTmp)

            ' individuo i numeri da sviluppare i quali devono avere la c aratteristica sia di essere usciti
            ' nelle estrazioni coinvolte dal range sia di non essere gia presenti nella lunghetta stessa

            ReDim aNumDaSvil(90)
            nQtNumDaSvil = 0
            For n = 1 To 90
               If Not(aBUsati(n)) Then
                  If abNumValidi(n) Then
                     nQtNumDaSvil = nQtNumDaSvil + 1
                     aNumDaSvil(nQtNumDaSvil) = n
                  End If
               End If
            Next
            ReDim Preserve aNumDaSvil(nQtNumDaSvil)
            ' inizio a sviluppare le combinazioni da testare insieme ai numeri della lunghetta
            ReDim aCol(nClasseSvilTmp)
            bFound = False
            Call objSvil.InitSviluppoIntegrale(aNumDaSvil,nClasseSvilTmp)
            Do While objSvil.GetCombSviluppo(aCol)
               ' nelle opportune posizioni dell'array della lunghetta pongo i numeri della combinazione sviluppata
               For k = 1 To nClasseSvilTmp
                  aRetCol(nPos + k) = aCol(k)
               Next
               ' calcolo le presenze della lunghetta
               nPresTmp = Presenze(aRetCol,nQtEstrUsate,UBound(aRetCol),aRuote,nSorte)
               ' se le presenze calcolate sono >= a quelle gia inidviduate allora
               ' devo tenere traccia della combinazione da prendere per inserirla
               ' nella lunghetta all'uscita  del ciclo
               If nPresTmp >= nPresMax Then
                  aColDaPrendere = aCol
                  nPresMax = nPresTmp
                  bFound = True
               End If
            Loop

            ' se ho trovato una combinazione da poter inserire nella lunghetta
            ' procedo ad inserirla e tengo traccia della nuova dimensione (quantita dei numeri)
            ' della lunghetta
            ' se non ho trovato niente è inutile continuare esce
            If bFound Then

               For k = 1 To nClasseSvilTmp
                     aRetCol(nPos + k) = aColDaPrendere(k)
                     aBUsati(aColDaPrendere(k)) = True

               Next
               nPos = nPos + nClasseSvilTmp
            Else
               Exit Do
            End If





   Loop

   ' se la lunghetta ha raggiunto la dimesnione prevista la funzione torna true
   If nPos = nClasse Then


      GetLung = True
   Else
      GetLung = False
   End If

End Function
Sub AlimentaNumValidi(aCol,Inizio,Fine,aRuote,abNumValidi)
   ' funzione usata per test non nello script
   'ReDim abNumValidi(90)

   ReDim abNumValidi(0)
   Dim quantitanumeriscelti
   quantitanumeriscelti = ScegliNumeri(abNumValidi)


   ReDim aNumRuota(5)
   Dim idEstr,e,r

   For idEstr = Inizio To Fine
      For r = 1 To UBound(aRuote)
         Call GetArrayNumeriRuota(idEstr,aRuote(r),aNumRuota)
         If PuntiSuArray(aNumRuota,aCol) > 1 Then
            For e = 1 To 5
               abNumValidi(aNumRuota(e)) = True
            Next
         End If
      Next
   Next
End Sub
Function Presenze(aColDaSvilTmp,nQtEstrUsate,nClasseLunghetta,aRuote,Sorte)
 ' calcola le presenze di una lunghetta
   Dim k,r,e,nPunti,aNumRuota,nPresenze
  ' Dim aB
   nPresenze = 0
  ' aB = ArrayNumeriToBool(aColDaSvilTmp)
   For k = 1 To nQtEstrUsate
      For r = 1 To UBound(aRuote)
   '         Call GetArrayNumeriRuota(k,aRuote(r),aNumRuota)

            nPunti = 0
            For e = 1 To nClasseLunghetta
               If aEstrattiBool(k,aRuote(r),aColDaSvilTmp(e)) Then
                  nPunti = nPunti + 1
               End If
            Next
            If nPunti >= Sorte Then
               nPresenze = nPresenze + 1
            End If
      Next
   Next

   Presenze = nPresenze

End Function

Il sopra riportato script è molto efficiente per ricercare e ordinare le frequenze in ordine decrescente solo che valuta sempre e soltanto i 90 numeri mentre a me servirebbe appunto di implementarvi la tabella colorata per l'immissione dei numeri voluti di volta in volta.

Ho provato in mille e uno modi senza ahimè riuscirvi :(:rolleyes::)

Grazie 1000 a chi posterà la solution ;)

Ps: A giudicare dalle numerose "istruzioni commentate" in esso presenti credo che l'abbia creato il Grande Maestro LuigiB, che saluto. Ad ogni modo è davvero molto ben fatto ed estremamente rapido nelle sue elaborazioni.
 
Ultima modifica:
Scusa LottoTom, ma lo script, non fa altro che prendere i numeri dalle estrazioni che consideri sulla ruota scelta, così come è non opera con i 90 numeri, bensì con i numeri che ti ho spiegato.

e' specificato anche nel costrutto:
' alimento una collection con tutte le combinazioni di classe <nSorte> che si
' formano con le cinquine comprese nel range interessato
' di ogni singola combinazione si calcolano le frequenze

quindi è in questa parte del costrutto che devi operare.
 
claudio8;n2164104 ha scritto:
Scusa LottoTom, ma lo script, non fa altro che prendere i numeri dalle estrazioni che consideri sulla ruota scelta, così come è non opera con i 90 numeri, bensì con i numeri che ti ho spiegato.

e' specificato anche nel costrutto:
' alimento una collection con tutte le combinazioni di classe <nSorte> che si
' formano con le cinquine comprese nel range interessato
' di ogni singola combinazione si calcolano le frequenze

quindi è in questa parte del costrutto che devi operare.

Ciao claudio,

si anche secondo me è li che va implementata la tabella e forse proprio in questa fascia del codice

Codice:
 ' individuo i numeri da sviluppare i quali devono avere la c aratteristica sia di essere usciti
            ' nelle estrazioni coinvolte dal range sia di non essere gia presenti nella lunghetta stessa

            ReDim aNumDaSvil(90)
            nQtNumDaSvil = 0
            For n = 1 To 90
               If Not(aBUsati(n)) Then
                  If abNumValidi(n) Then
                     nQtNumDaSvil = nQtNumDaSvil + 1
                     aNumDaSvil(nQtNumDaSvil) = n
                  End If
               End If
            Next

Ma ho provato a sostituire aNumDaSvil con... il codice della "tabella immissione numeri desiderati"

Codice:
ReDim aNumDaSvil(0)
nQtNumDaSvil = ScegliNumeri(aNumDaSvil)

Posizionandolo in diverse parti ma in ogni caso mi da errore o mi presenta la tabella più volte senza permettermi di andare avanti...
 
Ciao Lotto Tom, il riferimento che hai indicato tu fa una comparazione di numeri aBUsati,rispetto ai totali 90.

Tu cosa vorresti effettivamente dallo script, perchè questo ha una serie di controlli sempre riferiti all'utilizzo delle estrazioni che si scelgono inizialmente.
 
claudio8;n2164130 ha scritto:
Ciao Lotto Tom, il riferimento che hai indicato tu fa una comparazione di numeri aBUsati,rispetto ai totali 90.

Tu cosa vorresti effettivamente dallo script, perchè questo ha una serie di controlli sempre riferiti all'utilizzo delle estrazioni che si scelgono inizialmente.

Ciao claudio, io vorrei che lo script mostrasse a video le lunghette di classe desiderata + frequenti in ordine decrescente per la sorte e la ruota scelta ma che, anzichè partire dal gruppo dei 90 o da numeri da lui prelevati analizzando le ultime uscite..., elaborasse di volta in volta solo numeri desiderati importati nello stesso script tramite un semplice copia incolla nella tabella colorata apposita.

Es. "visivo" fittizio

copio e incollo nella tabella i numeri 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20
scelgo la ruota (es BA) , scelgo la classe (es. 7) ,la sorte (es. 2) e lo script mostra in output in ordine di frequenza decrescente le 7ine x A su BA integrali sviluppabili dal gruppo numerico di base di cui sopra...
 
Ultima modifica:
Provando a risolvere autonomamente...

Non riesco a legare la collection all'ordinamento... x frequenza decrescente...

Codice:
Set coll = GetNewCollection

Set clsN = New clsFrequenza

      clsN.numero = StringaNumeri(acol)
      clsN.aRuote = "ruota:" & SiglaRuota(aRuoteTmp(1))
      clsN.nSorte = nSorte
      clsN.nritardo = RetRit1
      clsN.RetRitMax = RetRitMax
      clsN.RetRitIncrRitMax = RetIncrRitMax
      clsN.RetFreq = RetFreq
      clsN.difforo = Diff
      clsN.contatore = contatore



coll.Add clsN,"k" & clsN.numero


Call OrdinaItemCollection(coll,,7,,1)

'OrdinaMatrice coll,-1,7


Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(acol) & " FREQ " & RetFreq & " RUOTA " & NomeRuota(aRuoteTmp(1)) & " contatore " & contatore)

Lo script non mi da errori mostrando in output i risultati ma non esegue l'ordinamento desiderato x frequenza decrescente.


Where I fagian? Tradotto... Dove sto fagianando? :rolleyes: :D

Ps: non vorrei usare crea tabella o crea tabella ordinabile perchè sono sicuro... che in quelle modalità lo script rallenti troppo i tempi di elaborazione...
 
Ultima modifica:
claudio8;n2164309 ha scritto:
Prova a rimettere lo script modificato.
Ciao

Codice:
Sub Main

Dim QNScelti

ReDim aNum(0)

ReDim aRuoteSel(12)

RuoteSelezionate = ScegliRuote(aRuoteSel)

Dim contatore

contatore = 1

QNScelti = ScegliNumeri(aNum)

Dim coltot,Classe,acol,RuoteSelezionate,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq

nSorte = 2

Classe = 5

coltot = InitSviluppoIntegrale(aNum,Classe)

Dim k,i

If coltot > 0 Then

Do While GetCombSviluppo(acol) = True

i = i + 1

ReDim aRuoteTmp(1)

For k = 1 To RuoteSelezionate

aRuoteTmp(1) = aRuoteSel(k)

Call StatisticaFormazioneTurbo(acol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)

Next

Dim coll

Set coll = GetNewCollection

Set clsN = New clsFrequenza

      clsN.numero = StringaNumeri(acol)
      clsN.aRuote = "ruota:" & SiglaRuota(aRuoteTmp(1))
      clsN.nSorte = nSorte
      clsN.nritardo = RetRit1
      clsN.RetRitMax = RetRitMax
      clsN.RetRitIncrRitMax = RetIncrRitMax
      clsN.RetFreq = RetFreq
      clsN.difforo = Diff
      clsN.contatore = contatore



coll.Add clsN,"k" & clsN.numero


Call OrdinaItemCollection(coll,nritardo,7,,- 1)

'Call OrdinaItemCollection(coll,,7,,-1)

'Call OrdinaMatrice (coll,-1,7)


Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(acol) & " FREQ " & RetFreq & " RUOTA " & NomeRuota(aRuoteTmp(1)) & " contatore " & contatore)

contatore = contatore + 1

Call AvanzamentoElab(1,coltot,i)

If ScriptInterrotto Then Exit Do

Loop

End If

Call Scrivi
Call Scrivi("Ruota esaminata: " & NomeRuota(aRuoteTmp(1)))
Call Scrivi
Call Scrivi("Sorte eaminata: " & nSorte)
Call Scrivi
Call Scrivi("Classe esaminata: " & Classe)
Call Scrivi
Call Scrivi("Numeri esaminati: ")
For i = 1 To UBound(aNum)
Call Scrivi(aNum(i))
Next

Call Scrivi("Tempo trascorso: " & TempoTrascorso)

End Sub


Class clsFrequenza
   Dim numero
   Dim nRitardo
   Dim aCol
   Dim aRuote
   Dim nSorte
   Dim RetRit1
   Dim RetRitMax
   Dim RetRitIncrRitMax
   Dim RetFreq
   Dim difforo
   Dim contatore

End Class

Ciao
 
Ultima modifica:
Ti ho escluso completamente l'uso delle classi (penso che ti stai impelagando inutilmente). Spero che funzioni come vorresti, controlla gli output.
Codice:
Sub Main
     Dim QNScelti
     ReDim aNum(0)
     ReDim aRuoteSel(12)
     RuoteSelezionate = ScegliRuote(aRuoteSel)
     Dim contatore
     contatore = 0 '1
     QNScelti = ScegliNumeri(aNum)
     Dim coltot,Classe,acol,RuoteSelezionate,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq,colonne
     nSorte = 2
     Classe = 5
     coltot = InitSviluppoIntegrale(aNum,Classe)
     colonne = CInt(Combinazioni(QNScelti,Classe))
     Dim k,i
     ReDim matrice(colonne,4)
     i = 0
     If coltot > 0 Then
          Do While GetCombSviluppo(acol) = True 'legge le colonne
               i = i + 1
               ReDim aRuoteTmp(1)
               For k = 1 To RuoteSelezionate
                    aRuoteTmp(1) = aRuoteSel(k)
                    Call StatisticaFormazioneTurbo(acol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)
               Next
               '               Dim coll
               '               Set coll = GetNewCollection
               '               Set clsN = New clsFrequenza
               '               clsN.numero = StringaNumeri(acol)
               '               clsN.aRuote = "ruota:" & SiglaRuota(aRuoteTmp(1))
               '               clsN.nSorte = nSorte
               '               clsN.nritardo = RetRit1
               '               clsN.RetRitMax = RetRitMax
               '               clsN.RetRitIncrRitMax = RetIncrRitMax
               '               clsN.RetFreq = RetFreq
               '               clsN.difforo = Diff
               '               clsN.contatore = contatore
               '               coll.Add clsN,"k" & clsN.numero
               '               Call OrdinaItemCollection(coll,nritardo,7,,- 1)
               '               'Call OrdinaItemCollection(coll,,7,,-1)
               '               'Call OrdinaMatrice(coll,-1,7)
               '
               '               Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(acol) & " FREQ " & RetFreq & " RUOTA " & NomeRuota(aRuoteTmp(1)) & " contatore " & contatore)
               contatore = contatore + 1
               matrice(i,0) = FormatSpace(i,5,1)
               matrice(i,1) = FormatSpace(StringaNumeri(acol,"_"),3*Classe,- 1)
               matrice(i,2) = RetFreq
               matrice(i,3) = SiglaRuota(aRuoteTmp(1))
               matrice(i,4) = FormatSpace(contatore,5,1)
               Call AvanzamentoElab(1,coltot,i)
               If ScriptInterrotto Then Exit Do
          Loop
     End If
     Call OrdinaMatrice(matrice,- 1,2)
     For x = 1 To UBound(matrice)
          matrice(x,0) = FormatSpace(x,5,1)
     Next
     Scrivi " Totale colonne " & colonne
     Scrivi "00000  " & " " & "  StringaNumeri  " & " FREQ " & " RUOTA " & " contatore "
     ScriviMatrice matrice
     Call Scrivi
     Call Scrivi("Ruota esaminata: " & NomeRuota(aRuoteTmp(1)))
     Call Scrivi
     Call Scrivi("Sorte eaminata: " & nSorte  & " Classe esaminata: " & Classe)
     Call Scrivi
     Call Scrivi("Numeri esaminati: ")
     For i = 1 To UBound(aNum)
          Call Scrivi(aNum(i))
     Next
     Call Scrivi("Tempo trascorso: " & TempoTrascorso)
End Sub
'Class clsFrequenza
'     Dim numero
'     Dim nRitardo
'     Dim aCol
'     Dim aRuote
'     Dim nSorte
'     Dim RetRit1
'     Dim RetRitMax
'     Dim RetRitIncrRitMax
'     Dim RetFreq
'     Dim difforo
'     Dim contatore
'End Class

ciao
Ps: output controllati.... erra la gestione di + ruote.... (dà output corretti solo con la singola ruota, se ti occorre verificare su + ruote fai un fischio :cool: :cool: :cool: :cool:)
ri ciao
 
Ultima modifica:
Grazie claudio! :)

L'ho eseguito ma purtroppo mi da questo errore...

midaquestoerrore.jpg

Da cosa potrebbe dipendere e come potrei rimediarvi secondo te?

Il test l'ho fatto con la configurazione che hai impostato tu ossia:

nSorte = 2
Classe = 5

e dalla tabella colorata ho scelto 30 numeri a caso.

Comunque di nuovo grazie!

Ciao :)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 16 agosto 2025
    Bari
    22
    86
    27
    44
    02
    Cagliari
    38
    11
    60
    69
    27
    Firenze
    45
    54
    37
    35
    41
    Genova
    53
    46
    12
    18
    13
    Milano
    09
    61
    13
    86
    70
    Napoli
    54
    57
    34
    70
    35
    Palermo
    40
    25
    24
    67
    74
    Roma
    66
    30
    54
    56
    24
    Torino
    17
    75
    55
    13
    19
    Venezia
    78
    17
    12
    85
    90
    Nazionale
    72
    01
    46
    50
    52
    Estrazione Simbolotto
    Nazionale
    28
    26
    27
    21
    37
Indietro
Alto