Novità

Per il Sig. Luigi

paciola

Senior Member
Gent.mo Sig. Luigi
Mi chiamo Davide, ho 42 anni e sono molto appassionato di lotto e di programmazione, ma, per ciò che riguarda quest'ultima, con scarsi risultati.
Ho imparato ad apprezzare la sua competenza ed abilità nella programmazione nei lavori che ho potuto scaricare da qui, e devo dire che il suo prezioso aiuto mi farebbe enormemente piacere perchè mi darebbe l'opportunità di imparare ciò che da solo non riouscirei a fare.
Le allego un link da dove potrà scaricare un file che ho preparato con la spiegazione di quello che mi servirebbe.
Se ha tempo e voglia potrebbe per favore darci un'occhiata e vedere quello che si può fare?
Nel caso ci si dedicasse, potrebbe gentilmente commentare il codice in modo da darmi la possibilità di capire quello che viene programmato?

https://rapidshare.com/files/4001490203/Per_Sig_Luigi_-_Creazione_tabulati.xls

Nel frattempo colgo l'occasione per salutarla e ringraziarla e contemporaneamente voglio salutare tutto il forum che è composto da persone molto competenti e sempre dipsonibili.
Un caro saluto dal nuovo iscritto
Davide
 
ciao per ora ho scaricato il file e preso visione de l contenuto ,
attualmente non ho il tempo disponibile che avevo prima
ed in piu sto apportando delle modifiche abbastanza impegnative su Spaziometria quindi per il momento posso solo dirti che ho scaricato il file che hai postato e che me lo guarderò successivamente tra qualche giorno..
Un saluto !
 
La ringrazio anche solo per questo!!
E' stato gentilissimo. Sono sicuro che imparerò molto dal suo modo di programmare!
A presto

Davide

P.S.
Rimango a disposizione, ovviamente, per qualsiasi chiarimento nel caso ci fosse qualcosa di poco chiaro.
 
Gent.mo Sig. Luigi
in merito alla "richiesta" che mi sono permesso di farle qualche giorno fa, le vorrei chiedere se è possibile, nel foglio dove verranno calcolati i tabulati, aggiungere la possibilità di scegliere la data alla quale calcolarli in modo da poter fare dei controlli sul passato.
La mia idea sarebbe poi quella di integrare il programmino con altre ricerche statistiche in modo da ottenere direttamente delle previsioni. Ma questo vedrò col tempo se sarò in grado di farlo.
Approfitto di questo spazio per aggiungere che è un vero peccato l'aver interrotto il corso di VBA orientato al lotto. Mi sono scaricato tutte le lezioni e me le sono riviste diverse volte accorgendomi di imparare sempre qualcosa di più. Ho perfino provato ad approntare la calcolatrice con le funzioni che aveva richiesto nella 5° lezione per poter proseguire il corso.
Spero che in un futuro abbia il tempo e la voglia di ritornare sull'argomento perchè la sua abilità nella programmazione e, soprattutto, la sua capacità di spiegare in maniera chiara e semplice i vari concetti, siano un surplus notevole per questo forum che ho imparato ad apprezzare da poco tempo ma che ho intenzione di frequentare molto più assiduamente.
La ringrazio ancora per quello che potrà fare per me e le auguro un buon week end.

Davide
 
Grazie infinite Sig. Luigi.
E' stato gentilissimo, studiare il codice sarà la prima cosa che farò.
Spero di poterle fare qualche domanda ove non mi fosse chiaro qualche passaggio.
Ovviamente potrà risporndermi nei limiti del suo tempo libero.
Grazie ancora

Davide
 
Grazie Sig. Luigi
il codice è perfetto e i dati che ne scaturiscono sono corretti.
Ci sono alcuni passaggi del codice che non mi sono chiari, ma non so se postare qui le domande oppure scriverle in privato.
Mi dica lei come mi devo comportare grazie

Davide
 
Ciao Paciola , vabbe che sono il professore ... (per modo di dire)
pero dammi del tu :-) .... le domande ponile qui che son sempre utili
per chi le legge.
 
Ciao Luigi,
x me va benissimo, diamoci pure del tu, anzi è meglio va!! ahahahah

Ritorno un attimo al programmino che mi hai fatto.
Volevo aggiungere, nel foglio dei tabulati, una comboBox dove inserire la data delle ultime, diciamo 100-150 estrazioni, in modo da avere la possibilità di calcolare i valori dei tabulati ad una certa data e poter verificare le sortite successive dei numeri previsti.
La mia idea sarebbe quella di creare una funzione di caricamento che prenda in considerazione sempre le ultime, ad es., 100 estrazioni, e poi richiamarla nel metodo Open dell'oggetto ThisWorkBook, passandole come parametro la combo da popolare. Se è tutto corretto vorrei provare a creare questa funzione ma avrei bisogno di qualche suggerimento. Potrebbe aiutarmi please?

Grazie Davide
 
ciao , benissimo in realta gia nel foglio che ti ho dato
ci sono tutte le informazioni che servono per realizzare
questa nuova funzionalità.
In pratica come hai detto anche tu si tratta di aggiungere
una combobox e alimentarla.
Per aggiungere la combobox puoi fare copia e incolla di quella che gia
c'è , poi clicchi con il destro e apri le proprietà vai sulla proprieta
name e la chiami cmbData.
Poi vai nel modulo modSupporto e crei li una nuova funzione
che chiamerai LoadComboData , predndi esempio dalla funzione che gia c'è
LoadComboRuote.
All'interno di questa funzione dovrai dichiarare un array per leggere
le estrazioni dal foglio estrazioni e poi lanciare la procedura
AlimentaArrayEstrazioni passando come parametro l'array appena dichiarato.
Puoi vedere come si fa perche gia in un altra parte del programma
leggiamo le estrazioni dal foglio e non devi fare niente di piu
Dopo aver lanciato la funzione per alimentare l'array con le estrazioni non devi far altro che usare un ciclo for che
puo andare sia dall'inizio alla fine dell'array o solo dalle ultiime
300 in poi.
Per aggiungere un elemento in una compo si adopera il metodo
AddItem della combo , il dato che devi aggiungere è la data estrazione.
Questo valore è contenuto nell'array che avevi appena alimentato
infatti se guardi il modulo ModStrutture vedrai come è impostato il
tipo dati delle estrazioni , vedrai questo

Codice:
Public Type STRUCT_ESTRAZIONE ' è il tipo che contiene i numeri di una singola estrazione
    idEstrazione As Long
    Data As String
    aRuote(1 To 11) As STRUCT_ESTRATTI
End Type


quindi facendo finta che avrai chiamato il tuo array aEstr

dopo aver lanciato la funzione per alimentarlo potrai
leggere la data di una specifica estrazione in questo modo

Codice:
cmbData.Additem aEstr(X).Data

dove x è la variabile che indica il numer odi estrazione e
che fatticonto tu volessi alimentare solo le ultime 300
scriveresti :

Codice:
for x = (ubound(aEstr) +1) - 300 to ubound(aEstr)
cmbData.Additem aEstr(X).Data
next


vai vedi che riesci a fare ....
 
Ciao Luigi,
grazie ai tuoi suggerimenti ci sono riuscito. All'apertura del programma le due combo che ci sono nel foglio Tabulati si caricano entrambe.
Ora il problema sorge nella routine che calcola i tabulati, perchè devo fare in modo di fargli considerare la data da cui partire per calcolarli. Dovrei creare una variabile che contenga il valore della cmbData ma poi non so dove piazzarla nel codice.
Ora provo a ristudiare il codice e vedo di capirci un po' di più, ma se tu hai qualche suggerimento è ben accetto!!! :) :)

Davide
 
Ciao , benissimo .. piano piano vedrai che riuscirai a fare pure il resto.
Veniamo a noi , ora sono in ufficio quindi vado un po' a memoria
non avendo qui il foglio di excel.
Se ho ben capito tu vuoi fare in modo di far calcolare la statistica
fino ad una certa data , bene analizzando il flusso del programma
ti renderai conto che nel modulo ModRicerca è presente una funzione
( InitArrayEstraz dovrebbe chiamarsi cosi mi pare ) che si occupa di alimentare l'array delle estrazioni è poi su quell'array che viene
eseguita la statistica.
Quindi la funzione initArrayEstrazioni è quella che deve ricevere come
parametro la data finale alla quale deve fermarsi la ricerca.
Infatti una volta che questa funzione sa a che data fermarsi tu puoi fare cosi :
aggiungi un parametro alla funzione che chiamerai sData as string

la funzione dovrebbe diventare tipo questa

Sub InitArrayEstr (sData as string )
redim aEstr(0) as struct_estr
call alimentaArrayEstr (aEstr) ... o qualcosa di simile

' ora qui andrai a troncare l'array fino alla data che vuoi
' quindi da qui in poi è il nuovo codice che devi aggiungere

for k = ubound(aEstr) to 1 step -1
if aEstr(k).sData = sdata then ' se la data estr corrisponde a quella voluta

redim preserve aEstr(1 to k ) as struct_estrazione
exit for
' abbiamo troncato l'array e siamo usciti dal ciclo
end if
next


end sub



vedi un po' ... ciao !
 
Ciao , benissimo .. piano piano vedrai che riuscirai a fare pure il resto.
Veniamo a noi , ora sono in ufficio quindi vado un po' a memoria
non avendo qui il foglio di excel.
Se ho ben capito tu vuoi fare in modo di far calcolare la statistica
fino ad una certa data , bene analizzando il flusso del programma
ti renderai conto che nel modulo ModRicerca è presente una funzione
( InitArrayEstraz dovrebbe chiamarsi cosi mi pare ) che si occupa di alimentare l'array delle estrazioni è poi su quell'array che viene
eseguita la statistica.
Quindi la funzione initArrayEstrazioni è quella che deve ricevere come
parametro la data finale alla quale deve fermarsi la ricerca.
Infatti una volta che questa funzione sa a che data fermarsi tu puoi fare cosi :
aggiungi un parametro alla funzione che chiamerai sData as string

la funzione dovrebbe diventare tipo questa

Sub InitArrayEstr (sData as string )
redim aEstr(0) as struct_estr
call alimentaArrayEstr (aEstr) ... o qualcosa di simile

' ora qui andrai a troncare l'array fino alla data che vuoi
' quindi da qui in poi è il nuovo codice che devi aggiungere

for k = ubound(aEstr) to 1 step -1
if aEstr(k).sData = sdata then ' se la data estr corrisponde a quella voluta

redim preserve aEstr(1 to k ) as struct_estrazione
exit for
' abbiamo troncato l'array e siamo usciti dal ciclo
end if
next


end sub



vedi un po' ... ciao !
 
Grazie mille.
Mi sto divertendo un sacco (a parte quando non funziona il codice).
Cmq ti ringrazio per il momento, proverò a studiare ciò che mi hai suggerito.
Spero di poter usufruire ancora della tua conoscenza e disponibilità perchè ho intenzione di proseguire nello sviluppo del programma, e quindi di romperti un po' i marroni... :)

Grazie
Davide
 
Ciao Luigi
ti comunico gli sviluppi.....
Allora ho fatto la variazione che mi hai suggerito sulla funzione "InitArrayEstrazioni" aggiungendo il paramentro in ricezione sData, quindi è diventata così:
Sub InitArrayEstr (sData as string )
redim aEstr(0) as struct_estr
call alimentaArrayEstr (aEstr)

Poi sono andato nella sub CmdElabora del pulsante sul foglio Tabulati, ho creato una variabile nData di tipo string e l'ho valorizzata con il valore della proprietà text della cmbData cioè ho fatto:

....
Dim nData as String
.....

nData = CmbData.Text

Poi nella chiamata alla funzione InitArrayEstrazioni ho passatao il paramentro nData facendo:

Call InitArrayEstrazioni(nData)


Successivamente ho provato a ricalcolare i tabulati andando a cambiare la data nella casella combinata del foglio Tabulati e tutto è ok, i tabulati vengono calcolati in modo corretto.

Ho fatto tutto giusto?

Grazie
Davide
 
non hai postato il pezzo di codice che tronca l'array ma se
dici che funziona penso tu lo abbia fatto.
ci sono un paio di correzioni :

1) la variabile che hai chiamato nData si dovrebbe chiamare sData
perche il prefisso n dovrebbe indicare un contenuto numerico
mentre la variabile è giustamente dichiarata come String.

2) la variabile di cusi sopra sData o nData com el'hai chiamata tu
è inutile , puoi passare direttamente la proprieta text della combo
alla funzione.

Ciao
 
visto che procedi vediamo un compitino :-)

Allora abbiamo visto che le combo si caricano all'apertura del foglio
ma immagina lo scenario in cui aggiungi una nuova estrazione
nel foglio delle estrazioni.
Questa non verrebbe contemplata nelle combo prima di chiudere e riaprire il foglio... Come risolveresti il problema ?
 
Ciao Luigi,
No in effetti il Ciclo For che mi avevi indicato tu non l'ho inserito.
Ma dovevo inserirlo sempre nella Sub InitArrayEstrazioni? Perchè non avevo capito bene questo passaggio.
Però funziona lo stesso....boh!

Per quanto riguarda il compitino.....:) adesso ci rifletto e poi se arrivo alla risposta ti rispondo!
Un'idea ce l'ho, ma non so se funziona.
Ti faccio sapere!
Intanto ti avviso che il prossimo passo sarà quello di permettere l'inserimento manuale delle estrazioni, con un pulsante sul foglio Archivio e una form con le sue belle caselle di testo ecc...
Per cui.....preparati!! :) :)

Davide
 
non puo funzionare lo stesso solo perche passi una data alla funzione ... se co sta data non ci fai nulla è impossibile ...
ti avevo gia scritto cosa dovevi fare ..vedi se ci riesci
 
Si Luigi ovviamente avevi ragione, non funzionava bene senza la trocatura dell'array.
Ho provveduto ad aggiungere il ciclo For nalla Sub InitArrayEstrazioni e il tutto gira come un orologio.

Tornando a noi con "il compitino".....:(
La soluzione che avevo in testa non va, per cui ci ho pensato su tutto il pomeriggio, tra una dichiarzione 770 e un'altra...ehehehehe.
Ma sono in difficoltà....ho come l'impressione che la cosa sia più semplice del previsto, ma ancora non ci arrivo!!!!
Ci penso ancora un pochino.....poi mi arrendo!!!

Davide
 

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