Sviluppare funzionalita su Microsoft Office con VBA cercare combinazione vincente

Login Registrati
Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
  • Autore
    Articoli
  • #24491 Score: 0 | Risposta

    gIUSEPPE

      Salve come fare una ricerca anche con caratteri jolly di una combinazione vincente di 6 numeri su una serie di decine e e novine, cercare se presente una simile o piu' simile.

      le sequenze sono divise un numero in una colonna

      Grazie

      Giuseppe  

      #24495 Score: 0 | Risposta

      Marius44
      Moderatore
        52 pts

        Ciao

        Non mi intendo di giochi ma, a prescindere, non capisco la domanda.

        Cosa vuoi che Excel e/o VBA facciano?

        Prova a metter giù un esempio e allegalo.

        Ciao,

        Mario

        #24513 Score: 0 | Risposta

        ForumExcel
        Partecipante

          Grazie Mario

          ho una serie numerica di 100.000 righe sotto un esempio tutti i numeri i colonne diverse, nelle quali righe devo cercare una sestina se presente oppure se presente 5 dei 6 numeri :

          esempio di colonna vincente da ricercare:  19 39 43 47 50 55 

          La ricerca mi deve evidenziale che sulla prima riga tutti e 6 i numeri sono presenti nella riga numero 1.

          In mancanca di una riga dove ci siano tutti e 6 i numeri ricercati anche evidenziare dove sono presenti 5 dei sei numeri.

          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

          Grazie

          Giuseppe

          #24560 Score: 0 | Risposta

          Oscar
          Partecipante
            32 pts

            è meglio se alleghi un file di esempio

            #24562 Score: 0 | Risposta

            ForumExcel
            Partecipante

              quello sopra è un esempio di colonna vincente da ricercare e un elenco di combinazioni dove fare la ricerca 5 e 6

              esempio di colonna vincente da ricercare: 19 39 43 47 50 55

              trovato nella prima riga tutti e 6 numeri ricercati in rosso
              nella seconda riga in blu sono i 4 numeri presenti non è da cercare solo 5 o 6 della sestina.

              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

              Grazie

              Giuseppe

              #24563 Score: 0 | Risposta

              albatros54
              Moderatore
                83 pts

                allora, normalmente è buona abitudine postare anche un file, senza dati sensibili e in forma ridotta, che rispecchi fedelmente il problema.

                Io ho immaginato questyo scenario:

                ho inserito le sestine da controllare nelle colonne che vanno dall"a" alla"f" e per ogni cella ho inserito un numero,che fa parte della sestina.

                nella prima riga a partire dalla colonna "g" fina alla colonna"N" ho inserito l'estrazione, i numeri che voglio confrontare con le estrazioni.

                il codice non fa altro che evidenziare le celle con i numeri che corrispondono alla combinazione vincente.

                incolla il codice in un modulo e lo esegui.

                `Sub ricercavalori()
                    Range("a1:d9").Interior.Color = vbWhite
                    For riga = 1 To 6 <<<--------------Dove si trovano le sestine da controllare
                        For I = 7 To 12 <<<------------Dove si trovano i numeri estratti
                            Numero = Cells(1, I)
                            For Colonna = 1 To 4 <<<----le mie erano quartine
                                If Numero = Cells(riga, Colonna) Then
                                    Cells(riga, Colonna).Interior.Color = vbGreen
                                Else
                                    If I = 1 Then
                                        Cells(riga, Colonna).Interior.Color = vbWhite
                                    Else
                                    End If
                                End If
                            Next Colonna
                        Next I
                    Next riga
                End Sub`

                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                Sempre il mare, uomo libero, amerai!
                ( Charles Baudelaire )
                #24564 Score: 0 | Risposta

                ForumExcel
                Partecipante

                  Scusa allego esempio delle righe che devo controllare sono solo una minima parte sono 100.000 le  righe in decine e novine.

                  E' applicabile la procedura al foglio di lavoro?

                  Grazie

                  Giuseppe

                  Allegati:
                  You must be logged in to view attached files.
                  #24567 Score: 0 | Risposta

                  albatros54
                  Moderatore
                    83 pts

                    ti allego file con codice postato

                     

                     


                    Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                    Sempre il mare, uomo libero, amerai!
                    ( Charles Baudelaire )
                    Allegati:
                    You must be logged in to view attached files.
                    #24570 Score: 0 | Risposta

                    ForumExcel
                    Partecipante

                      Grazie funziona ho aumentato a 110.000 le righe da controllare.

                      Ma l'ideale sarebbe che elencasse alla fine del controllo quale riga a tutti e 6 i numeri oppure quale riga ha 5 numeri indovinati.

                      Si puo' fare ?

                      Grazie

                      Giuseppe

                      #24571 Score: 0 | Risposta

                      ForumExcel
                      Partecipante

                        in alternativa poter riordinare il risultato per numeri rossi presenti per riga.

                        Grazie

                        Giuseppe

                        #24583 Score: 0 | Risposta

                        albatros54
                        Moderatore
                          83 pts

                          prova a sostituire il codice con quello che ti posto, per ogni combinazione ti scrive sulla riga se c'è una cinquina o una sestina

                          Sub ricercavalori()
                              Range("a1:j29").Font.Color = vbBlack
                          
                              For Riga = 2 To 29    '<<<--------------Dove si trovano le sestine da controllare
                                  Indovinato = 0
                                  For I = 12 To 17    '<<<------------Dove si trovano i numeri estratti
                                      Numero = Cells(2, I)
                                      For Colonna = 1 To 10
                                          If Numero = Cells(Riga, Colonna) Then
                                              Cells(Riga, Colonna).Font.Color = vbRed
                                              Indovinato = Indovinato + 1
                                          Else
                                              If I = 1 Then
                                                  Cells(Riga, Colonna).Interior.Color = vbWhite
                                              Else
                                              End If
                                          End If
                                      Next Colonna
                                  Next I
                                  Select Case Indovinato
                                  Case Is = 5
                                      Cells(Riga, 11) = "CINQUINA"
                                  Case Is = 6
                                      Cells(Riga, 11) = "sestina"
                                  Case Else
                                  End Select
                              Next Riga
                          End Sub

                           


                          Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                          Sempre il mare, uomo libero, amerai!
                          ( Charles Baudelaire )
                          #24584 Score: 0 | Risposta

                          Giuseppe

                            perfetto per non cercarle cosa troppo lunga ho ordinato la colonna K ed ecco il risultato.

                            Grazie

                            Ottimo

                            #24590 Score: 0 | Risposta

                            Giuseppe

                              un problema eseguo il controllo di un'altra colonna vincente restano le scritte cinquina e sestina.

                              Si puo' aggiungere al pulsante della procedura la pulizia delòla colonna K prima di eseguirla?

                              Grazie

                              Giuseppe

                              #24591 Score: 0 | Risposta

                              Giuseppe

                                mi trovo degli errori forse non cancellate anche i numeri rossi precedenti 7 numri rossi nella prima Grazie Giuseppe

                                #24639 Score: 0 | Risposta

                                Oscar
                                Partecipante
                                  32 pts

                                  [k:k]=""

                                  Prova a mettere questa allinizio della macro

                                  Ma scusa Giuseppe tu parli di 100.000 colonne da controllare , ma non ti conviene anziché scrivere il risultato in parola lo scrivi in numero , poi fai un ordinamento dal più grande al più piccolo , così le trovi tutte all'inizio del foglio e ordinate altrimenti ne dubito che tu possa gestirle al meglio

                                  #24729 Score: 0 | Risposta

                                  ForumExcel
                                  Partecipante

                                    Ti rigrazio funziona restano però i numeri rossi del precedente controllo come in questo caso i numeri 25 29 45 e 88

                                    grazie

                                    Giuseppe

                                    #24732 Score: 0 | Risposta

                                    Oscar
                                    Partecipante
                                      32 pts

                                      Modica questa per tutto il range interessato

                                        Range("a1:j29").Font.Color = vbBlack

                                      #24746 Score: 0 | Risposta

                                      ForumExcel
                                      Partecipante

                                        provo subito grazie

                                        #24747 Score: 0 | Risposta

                                        ForumExcel
                                        Partecipante

                                          dove sbaglio non funziona

                                          Sub ricercavalori()
                                              Range("a1:j29").Font.Color = vbBlack
                                          [k:k] = ""
                                           Range("a1:j29").Font.Color = vbBlack
                                              For Riga = 2 To 110000    '<<<--------------Dove si trovano le sestine da controllare
                                                  Indovinato = 0
                                                  For I = 12 To 17    '<<<------------Dove si trovano i numeri estratti
                                                      Numero = Cells(2, I)
                                                      For Colonna = 1 To 10
                                                          If Numero = Cells(Riga, Colonna) Then
                                                              Cells(Riga, Colonna).Font.Color = vbRed
                                                              Indovinato = Indovinato + 1
                                                          Else
                                                              If I = 1 Then
                                                                  Cells(Riga, Colonna).Interior.Color = vbWhite
                                                              Else
                                                              End If
                                                          End If
                                                      Next Colonna
                                                  Next I
                                                  Select Case Indovinato
                                                  Case Is = 5
                                                      Cells(Riga, 11) = "CINQUINA"
                                                  Case Is = 6
                                                      Cells(Riga, 11) = "sestina"
                                                  Case Else
                                                  End Select
                                              Next Riga
                                          End Sub
                                          #24758 Score: 0 | Risposta

                                          ForumExcel
                                          Partecipante

                                            Salve a parte la riga duplicata che ho tolto, alcuni numeri restano rossi.

                                            Range("a1:j29").Font.Color = vbBlack

                                            #24759 Score: 0 | Risposta

                                            Oscar
                                            Partecipante
                                              32 pts
                                              `Sub ricercavalori()
                                                [k:k] = ""
                                               Range("a1:j110000").Font.Color = vbBlack
                                                  For Riga = 2 To 110000    '<<<--------------Dove si trovano le sestine da controllare
                                                      Indovinato = 0
                                                      For I = 12 To 17    '<<<------------Dove si trovano i numeri estratti
                                                          Numero = Cells(2, I)
                                                          For Colonna = 1 To 10
                                                              If Numero = Cells(Riga, Colonna) Then
                                                                  Cells(Riga, Colonna).Font.Color = vbRed
                                                                  Indovinato = Indovinato + 1
                                                              Else
                                                                  If I = 1 Then
                                                                      Cells(Riga, Colonna).Interior.Color = vbWhite
                                                                  Else
                                                                  End If
                                                              End If
                                                          Next Colonna
                                                      Next I
                                                      Select Case Indovinato
                                                      Case Is = 5
                                                          Cells(Riga, 11) = "CINQUINA"
                                                      Case Is = 6
                                                          Cells(Riga, 11) = "sestina"
                                                      Case Else
                                                      End Select
                                                  Next Riga
                                              End Sub`

                                               

                                            Login Registrati
                                            Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
                                            Rispondi a: cercare combinazione vincente
                                            Gli allegati sono permessi solo ad utenti REGISTRATI
                                            Le tue informazioni: