You are here:Home-Domande su Excel VBA e MACRO-Combinazioni di numeri in sestine ordinate in colonne
Combinazioni di numeri in sestine ordinate in colonne2019-09-07T17:02:55+02:00

Home Forum Domande su Excel VBA e MACRO Combinazioni di numeri in sestine ordinate in colonne

Visualizzazione 13 filoni di risposte
  • Autore
    Post
    • Avatarzio.Piero
      Partecipante
        Post totali: 8

        Vorrei creare un foglio di calcolo in Excel con tutte le possibili combinazioni in sestine dei numeri da 1 a 90.

        In totale sono 622.614.630 combinazioni: inserendone 1 per riga sono in numero molto superiore al limite del foglio Excel che, per le versioni più recenti, è di 1.048.576 righe.

        E’ però possibile distribuire le combinazioni su più colonne a gruppi di 6 (appunto le sestine) , aggiungendo magari una colonna per il numero di combinazione. Incolonnando quindi le combinazioni in gruppi di 6 e ripartendo dalla riga iniziale, ad esempio, ogni 1.000.000 combinazioni, si avrebbero 623 gruppi: considerando 6+1 colonne ciascuno avremmo 623 * (6+1) = 4.361 colonne, numero inferiore al massimo consentito in Excel di 16.384 colonne.

        In tal modo si riuscirebbe quindi ad avere tutte le combinazioni in un unico foglio!

        Ho quindi studiato con attenzione un file trovato in rete e ho modificato la macro per ottenere l’incolonnamento delle combinazioni in gruppi, incontrando però degli errori che non riesco a correggere.

        Saltuariamente infatti, quando l’elaborazione raggiunge il numero massimo di righe impostato per prova e ricomincia dalla riga iniziale, la prima combinazione viene collocata nelle colonne sbagliate (quelle precedenti) mentre quelle successive sono posizionate correttamente.

        Dove sbaglio?

        In allegato il foglio di calcolo Combinaz3.

      • BySalvBySalv
        Amministratore del forum
          Post totali: 766

          Ciao Zio-piero, eccoti un mio file che calcola tutte le combinazioni fino ad 11

          nella colonna test metti i numeri che vuoi elaborare, poi selezioni le combinazioni che vuoi sviluppare e premi “Avvia” ed avrai le combinazioni

          le combinazioni vengono elaborate in una sola colonna con trattino separatore, se le vuoi in colonne singole, segui la procedura seguente.

          attenzione questo vale soltanto fino alla “Sestina”

          fa una sola combinazione alla volta, seleziona la combinazione e premi “Separa” ti crea un nuovo foglio con le combinazioni separate, può anche crearti più fogli uno per ogni combinazione.

          Attenzione più alto è il numero di combinazioni più tempo ci mette.

          ecco il file
          http://www.filedropper.com/combinazioniundici

          Ciao By Sal (8-D

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • Avatarzio.Piero
          Partecipante
            Post totali: 8

            Ciao By Sal e grazie per la risposta!

            Ho visto il tuo foglio e sembra funzionare abbastanza bene, anche se c’è qualcosa che non mi è chiara.

            Per quanto riguarda le combinazioni, hai mai provato ad elaborarne tante?
            Ad esempio tutte le sestine dei numeri da 1 a 40?

            Poiché le possibili combinazioni superano il milione, il programma va in “overflow” ossia eccede i limiti di Excel che sono di 1048576 righe per foglio!

          • BySalvBySalv
            Amministratore del forum
              Post totali: 766

              Ciao zio.piero, non dovrebbe andare in overflow, perche quando finiscono le righe passa alla colonna successiva, come puoi vedere dall’immagine

              Cattura

              ci ha messo 6:31 minuti

              ho scaricato il file dal sito ed ho fatto le prove su quello

              Ciao By Sal (8-D

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

              • AvatarBazzagioco
                Partecipante
                  Post totali: 4

                  Salve sono nuovo mi devo complimentare per la procedura realizzata per lo sviluppo delle sestine integrali non avevo mai visto al di fuori dei programmi sistemisti che vendo una cosa fatta così bene.

                  Per questo motivo chiedo se è possibile realizzare una procedura che sviluppa tutti i 110.000 sistemi da 10 e 9 numeri che ho realizzato ma invece che intergrali lo sviluppo ridotto nello specifico 10 numeri ridotto N-1 di 14 sestine e del 9 numeri di 8 sestine.

                  Qui sotto un esempio delle 90 mila decine

                  1    19    39    43    45    47    50    51    54    55
                  1    19    40    42    43    46    47    48    51    55
                  1    19    43    45    46    48    49    51    52    55
                  1    18    27    43    49    50    51    53    55    56
                  1    18    28    40    43    48    51    52    54    57
                  1    18    31    43    46    51    52    53    54    57
                  1    18    32    37    43    44    45    47    51    58

                  Grazie

                  Giuseppe

                • BySalvBySalv
                  Amministratore del forum
                    Post totali: 766

                    Ciao dovresti aprire un nuovo post, il file adesso sviluppa fino ad 11 combinazioni e le separa anche in colonne diverse.

                    però non fa la riduzione sviluppa solo sistemi integrali.

                    forse per lo sviluppo intendi sviluppare il sistema ridotto con i numeri reali questo un esempio:

                    [/url]

                    come ho detto apri un nuovo post

                    Ciao By Sal (8-D

                    Ciao By Sal (8-)
                    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                • Avatarzio.Piero
                  Partecipante
                    Post totali: 8

                    Ottimo, By Sal!

                    Ma sei l’autore del file Combinaz2 da cui sono partito (trovato su un altro forum)?
                    Questo foglio ne è l’evoluzione?

                  • Avatarzio.Piero
                    Partecipante
                      Post totali: 8

                      Ho fatto qualche altra prova: l’overflow (errore di Runtime 1004) si verifica nel separare le colonne delle sestine.

                    • BySalvBySalv
                      Amministratore del forum
                        Post totali: 766

                        Ciao credo di si se me ne fai vedere un immagine ti dirò se lo sono, anche se sto pensando di renderlo più veloce per le grosse combinazioni.

                        ma visto che è raro che si sviluppano, non so se ne valga la pena.

                        Ciao By Sal (8-D

                        Ciao By Sal (8-)
                        se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                      • BySalvBySalv
                        Amministratore del forum
                          Post totali: 766

                          Ciao ho letto dopo il tuo messaggio dell’overflow, ho fatto un controllo ed effettivamente non funzionava bene, ho modificato la macro, adesso dovrebbe andare.

                          Una cosa però, visto che la macro era fatta per una sola colonna dei dati, cioè i dati si avevano su un unica colonna e non combinazioni spalmate su più colonne.

                          la macro quando viene lanciata legge le intestazioni colonne per sapere quale prendere ambi-terni-etc.., quando colonne con “Sestine” ce ne sono 4 si ferma sempre alla prima.

                          quando vuoi dividere le combinazioni, fai la prima colonna “Sestine” poi quando devi fare la seconda cancella l’intestazione della prima, in questo modo prenderà la seconda colonna, cosi con la terza ecc.. ma non far eliminare i fogli cosi crea 4 fogli con tutte le combinazioni.

                          ti allego di nuovo il file.

                          http://www.filedropper.com/combinazioniundici_1

                          Ciao By Sal (8-D

                          Ciao By Sal (8-)
                          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                        • Avatarzio.Piero
                          Partecipante
                            Post totali: 8

                            Ecco il file Combinaz2 a cui facevo riferimento:

                            https://www.dropbox.com/s/j6nrsodrri80rag/Combinaz2.xls?dl=0

                            Sembra si tratti di un foglio abbastanza vecchio.
                            Il layout e la macro però hanno una impostazione simile, per questo ho pensato ne fossi l’autore!

                          • BySalvBySalv
                            Amministratore del forum
                              Post totali: 766

                              Ciao zio.piero, no non ne sono io l’autore, ma le macro purtroppo il VBA è quello, quindi per avere il risultato il codice è uguale, cambierà qualche impostazione, ma in definitiva si assomigliano.

                              Ciao By Sal (8-D

                              Ciao By Sal (8-)
                              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                            • Avatarzio.Piero
                              Partecipante
                                Post totali: 8

                                Infatti, si assomigliano molto!

                                Comunque grazie per la disponibilità e complimenti per la conoscenza del VBA!

                              • Avatarzio.Piero
                                Partecipante
                                  Post totali: 8

                                  Ho provato ad elaborare qualche milione di combinazioni e mi sono accorto che il problema più grosso è quello di non poter interrompere il calcolo e poi riprenderlo in un secondo momento!

                                  Non so se sia possibile fare qualcosa del genere in VBA…

                                  • Questa risposta è stata modificata 11 mesi fa da Avatarzio.Piero.
                                • BySalvBySalv
                                  Amministratore del forum
                                    Post totali: 766

                                    Ciao Zio.piero, il problema non è bloccare la macro, perche si può fare, ma far riprendere poi da dove si è lasciato, cioè far continuare la macro.

                                    si potrebbe ovviare anche alla seconda parte far riprendere la macro, ma non dovrai chiudere il file, a questo punto ti conviene, lanciare la macro alla sera e di notte elabori le combinazioni.

                                    Ma mi spieghi un poco a cosa ti servono tutte queste combinazioni?

                                    può darsi che quello che cerchi si possa avere in un modo differente.

                                    Ciao By Sal (8-D

                                    Ciao By Sal (8-)
                                    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                  • Avatarzio.Piero
                                    Partecipante
                                      Post totali: 8

                                      E’ per motivi didattici.

                                      Si, comunque intendevo proprio quello: credo sia impossibile fermare la macro e farla riprendere da un certo punto in poi…

                                      A meno che… non tenga conto dell’ultima combinazione, vada a leggere gli ultimi valori elaborati e ricomici da quelli!

                                  Visualizzazione 13 filoni di risposte
                                  • Devi essere connesso per rispondere a questo topic.