duplicati



  • duplicati
    di Giorgio.46 (utente non iscritto) data: 08/11/2012 18:38:42

    Salve Frac,

    sto postando come nuovo l'argomento duplicati e vorrei allegare il file
    solo che non vedo la voce inerente.

    Saluti


  • duplicati
    di Giorgio.46 (utente non iscritto) data: 08/11/2012 18:45:49

    Ho allegato il file e alla discussione potrebbe partecipare chiunque.

    Ho citato Frac solo perchè c'è stato un accenno alla discussione.

    Salute a tutti



  • di Vecchio Frac data: 08/11/2012 19:56:08

    Grazie per aver allegato il file.
    E' un po' complesso e oltretutto devo avviare la macchina virtuale con XL2007 per poterlo esaminare correttamente (XL2003 fa fatica soprattutto perchè ci sono molti formati condizionali non supportati).
    Io non detengo l'esclusiva... chiunque abbia voglia e pazienza può aiutare Giorgio a risolvere il caso ^_^





  • di HarryBosch data: 08/11/2012 20:34:09

    Vediamo un pò se ho capito:
    - hai 20 numeri su ogni riga, dalla colonna C alla V
    - vorresti che in base alla riga selezionata, si formino tutte le combinazioni degli ambi con questi 20 numeri (ovvero, matematicamente parlando 20*19/2, 190 combinazioni)
    - per tutte le 190 combinazioni, trovare quante volte sono uscite nella tabella che va da AB10 a HI413 (intervallo dinamico, quindi con righe in continua aggiunta)

    Intanto ho già trovato una cosa insidiosa: nella tabella ci sono degli spazi vuoti, tra i numeri, prima e dopo i numeri accoppiati... vediamo cosa ne esce


    @ VecchioFrac
    una cosa mooolto interessante è il calcolo combinatorio; magari in una prossima discussione lanciamo qualche proposta per uno sviluppo sull'argomento :)


  • duplicati
    di Giorgio.46 (utente non iscritto) data: 08/11/2012 20:54:45

    Salve HarryBosh

    hai un occhio di falco e a dir la verità è quello che mi sta facendo dannare.
    Quando la formula sviluppa la ricerca e da il risultato lascia lo spazio libero
    e questo non mi permette di controllare i duplicati, per questo mi rivolgo
    a voi che penso attraverso il vba di scavalcare questo handicap.
    La disamina che hai fatto è proprio quella, quindi non credo ci siano altrimenti
    chiarimenti. Ma eventualmente eventualmente ... aspetto notizie.
    Saluti



  • di Vecchio Frac data: 08/11/2012 22:40:55

    cit. " una cosa mooolto interessante è il calcolo combinatorio; magari in una prossima discussione lanciamo qualche proposta per uno sviluppo sull'argomento :) "
    ---> Ho già un'idea in mente :)

    @Giorgio
    Il richiamo ad HarryBosch ha dato i suoi frutti.
    Le menti fresche e giovani sono l'anima vitale di questo forum :)





  • di Vecchio Frac data: 08/11/2012 23:03:02

    cit. " Intanto ho già trovato una cosa insidiosa: nella tabella ci sono degli spazi vuoti, tra i numeri, prima e dopo i numeri accoppiati... vediamo cosa ne esce "
    ---> Gli spazi ci sono nella tabella originale, quella che va da C a V. Il futuro codice combinatorio (che sarà certamente più snello e veloce rispetto alla marea di formule già preimpostate e che non serviranno) ne terrà conto.
    Ci sono dei #RIF verso la colonna A o B (ho già chiuso la macchina virtuale).
    Il codice particolarmente intricato che ho visto in uno dei due moduli, è quello che si occuperebbe delle combinazioni?




  • duplicati
    di Giorgio.46 (utente non iscritto) data: 08/11/2012 23:51:42

    Rispondo,
    la colonna a ha le date nella macro CercaAmbi1, se per il calcolo combinatorio ma
    più che calcolo c'è il se che a condizione che trovi nella colonna A il mese;
    mi spiego quell'archivio l'ho dovuto estrapolare da quello totale per questo c'è
    la condizione se e dentro la formula la semplice concatena la casella 3 con la 4
    del rigo in esame.
    L'unico spazio di cui diffidare sarebbe quello nella tabella delle combinazioni
    perchè stranamente è prodotto dalla formula.
    Per quanto riguarda il#rif! in colonna B partendo dalla casella 10 richiamare la semplice numerazione partendo da 1 -2 - 3 ecc in giù.
    Ci risentiamo.



  • di HarryBosch data: 09/11/2012 02:04:51

    O.T.
    La serata ottata mi è stata portata via dal "Leopard".. (altro thread)

    Ho riaperto un minuto fa il tuo file, dopo gli ultimi commenti che avete fatto, e ho visto (solo ora) la macro nel modulo1: ho richiuso subito! Mi sa che se mi azzardo a farla partire il ciclo finisce domani con tutti questi For ^_^
    Giorgio, sto scherzando ovviamente... anche perché siamo già a "domani" :)
    Magari stanotte mi viene l'ispirazione per un bel ciclo combinatorio; avevo già in mente qualcosa a dir la verità, ma ormai ho la vista annebbiata



  • di HarryBosch data: 09/11/2012 15:56:32

    Ho sfornato qualcosa...
    Ti allego il file dove trovi due macro:
    - la prima genera tutte le combinazioni per ogni riga, quindi le 190 che abbiamo detto
    - la seconda trova tutti gli ambi indicati nella colonna "X" e ne riporta il conteggio nella colonna adiacente

    Per entrambe il codice ci mette un pò ad elaborare, ma funziona correttamente.
    Fai un confronto con il risultato che ottieni e fammi sapere


  • duplicati
    di Giorgio.46 (utente non iscritto) data: 09/11/2012 23:39:07

    Salve HarryBosh,

    ho da poco effettuato dei controlli di alcuni dati un lavoro perfetto.
    Sono soddisfattissimo.
    Per il tempo di elaborazione non ti fare alcun problema; c'è un detto che recita:
    " a caval donato non si guarda in bocca" ma ho rimediato diversamente.
    Chiarisco che se avessi la tua conoscenza...
    Speculando qua e là ho aggiunto ad inizio e termine macro tue

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ...tue macro...
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationManual

    e il tempo si dimezza anzi un po meno.
    Spero non la prendi per offesa.
    Ti ringrazio e ti saluto



  • di HarryBosch data: 10/11/2012 01:05:10

    Oh, nessuna offesa, tutt'altro...
    resto invece maggiormente soddisfatto quando poi gli utenti mettono mano per aggiungere, modificare, provare e testare a seconda della propria esigenza, con la loro testa. ^_^

    Tra l'altro hai certamente ragione: l'Application.ScreenUpdating ad inizio (=False) e fine (=True) codice è una prerogativa anche per le mie proposte. Questa volta m'è proprio sfuggito e sicuramente va inserito: i tempi si riducono drasticamente.

    Mentre "Application.Calculation = xlCalculationManual" sostanzialmente non modifica molto l'esecuzione del codice, in quanto sul foglio, se utilizziamo solo il vba, non ci sono formule che vengono ricalcolate automaticamente.
    Attenzione che se all'inizio lo imposti come calcolo manuale (onde evitare appunto che il ricalcolo automatico rallenti l'esecuzione), all'uscita devi riempostarlo come
    Application.Calculation = xlCalculationAutomatic
    altrimenti le eventuali formule sul foglio continuerrebbero a rimanere statiche qualora cambiassero i riferimenti delle stesse.


  • duplicati
    di Giorgio.46 (utente non iscritto) data: 10/11/2012 08:52:04

    Salve HarryBosch e buongiorno,

    dialogare con persone come te(dialogo scritto) fa sempre piacere per
    la squisitezza e schiettezza del dialogo in se.
    Tanto per chiarire ancora che quell'aggiunta non è frutto del mio sacco
    nel senso (speculando qua e là) che l'ho inserita perchè mi è capitato di vedere,
    anzi forse ora ho capito un pò del significato dell'applicazione, anzi ancora ho fatto
    tesoro dell'osservazione che prima di scriverti ho già effettuato la correzione
    da manual ad automatic.
    Il ringraziamento va oltre per quello che mi hai scritto ma anche di avere a che fare
    con una corretta persona.
    Adesso basta con i complimenti altrimento potrebbe scapparmi qualche lacrima...
    si fa per dire.
    Ancora un saluto e un a risentirci.



  • di Vecchio Frac data: 10/11/2012 08:59:43

    LOL, probabilmente il nostro Giorgio ha qualche annetto sulle spalle... molto raramente incontro giovani che si fanno scrupolo di restituire un feedback così preciso e accalorato ^_^
    Per quel poco che lo conosco io, HarryBosch è sempre disponibile, competente e professionale, lo trovi perfino di notte (fallo adesso... vedrai quando avrai dei bambini... ^_^).
    Volevo comunque precisare che copiare da codici fatti e funzionanti è cosa ottima e giusta (inutile reinventare la ruota, e poi si impara sempre qualcosa dal codice altrui), l'unica condizione è che si capisca cosa si sta facendo, altrimenti si genera confusione, quando non anche del danno. E se non si capisce cosa si sta facendo, è utile chiedere :)
    A presto, alla prossima (magari per un'ottimizzazione del codice).





  • di HarryBosch data: 10/11/2012 11:05:25

    Troppo buono Giorgio!
    E anch'io ti ringrazio per le belle parole e per il feedback, nell'attesa di sentirci presto.

    Sulla "ruota" VecchioFrac ha proprio ragione: io ho iniziato copiando e ricopiando non so quanti codici a destra e manca. Poi però ci mettevo sempre la mano, riga per riga, perché non sopportavo di vederlo eseguito senza sapere cosa facesse o perché si "arenasse" (come se adesso non mi succedesse ancora! :) )
    Ora riesco a cavarmela con la mia testa, ma non si smette mai di imparare.

    Buona giornata e a presto
    Vanni