none
Verificar todas as possibilidades entre duas matrizes? RRS feed

  • Pergunta

  • LINHA = 2
        
        While ThisWorkbook.Sheets("5VELAS").Cells(LINHA, 1) <> ""
            
            '
            '    MATRIZMARCADOS(1) = frmAnalise.chkAjuste.Value
            '    MATRIZMARCADOS(2) = frmAnalise.chkDirecao.Value
            '    MATRIZMARCADOS(3) = frmAnalise.chkLocalDia.Value
            '    MATRIZMARCADOS(4) = frmAnalise.chkLocalDiaAnterior.Value
            '    MATRIZMARCADOS(5) = frmAnalise.chkMaxima.Value
            '    MATRIZMARCADOS(6) = frmAnalise.chkSombra.Value
            '    MATRIZMARCADOS(7) = True 'GAP
            '    MATRIZMARCADOS(8) = True 'PM
            
            
            MATRIZRESULTADOS(LINHA - 1, 1) = MATRIZAJUSTE(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 2) = MATRIZDIRECAO(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 7) = MATRIZGAP(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 3) = MATRIZLOCALDIA(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 4) = MATRIZLOCALDIAANTERIOR(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 5) = MATRIZMAXIMADIAANTERIOR(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 8) = MATRIZPM(LINHA - 1)
            MATRIZRESULTADOS(LINHA - 1, 6) = MATRIZSOMBRAS(LINHA - 1)
            
            LINHA = LINHA + 1
            
        Wend
        

    Preciso de um procedimento que faça o cruzamento entre todas as posições da MATRIZRESULTADOS  com a MATRIZMARCADOS.

    Se a MATRIZMARCADOS, por exemplo, nas posições 4,5,6,7,8, estiver com valores verdadeiros, preciso verificar se a MATRIZRESULTADOS também está com os valores verdadeiros nas mesmas posições.

    Se os pares forem verdeiro com verdadeiro, jogo o valor da coluna A da planilha para a listbox. 

    Mas só considero os casos verdadeiros da MATRIZMARCADOS e verifico se também são verdadeiros na MATRIZRESULTADOS.

    Os números das linhas nas duas matrizes são os mesmos.


    Anderson Diniz diniabr2011@gmail.com



    sexta-feira, 3 de novembro de 2017 18:28

Respostas

  •  LINHA = 2
        
        While ThisWorkbook.Sheets("5VELAS").Cells(LINHA, 1) <> ""
            
               
            Dim comparacao As Boolean
            comparacao = False
            Dim k As Integer
            
            For k = 1 To 8
                If MATRIZMARCADOS(k) = True Then
                    If MATRIZRESULTADOS(LINHA - 1, k) = True Then
                        comparacao = True
                    Else
                        comparacao = False
                        Exit For
                        
                        
                    End If
                End If
            Next k
            
            If comparacao = True Then
            
            frmAnalise.lstPesquisaResultados.AddItem (ThisWorkbook.Sheets("Planilha1").Cells(LINHA, 1).Value)
            
            End If
            
            LINHA = LINHA + 1
            
        Wend
       


    Anderson Diniz diniabr2011@gmail.com

    • Marcado como Resposta AndersonFDiniz2 sexta-feira, 3 de novembro de 2017 22:46
    sexta-feira, 3 de novembro de 2017 19:05

Todas as Respostas

  •  LINHA = 2
        
        While ThisWorkbook.Sheets("5VELAS").Cells(LINHA, 1) <> ""
            
               
            Dim comparacao As Boolean
            comparacao = False
            Dim k As Integer
            
            For k = 1 To 8
                If MATRIZMARCADOS(k) = True Then
                    If MATRIZRESULTADOS(LINHA - 1, k) = True Then
                        comparacao = True
                    Else
                        comparacao = False
                        Exit For
                        
                        
                    End If
                End If
            Next k
            
            If comparacao = True Then
            
            frmAnalise.lstPesquisaResultados.AddItem (ThisWorkbook.Sheets("Planilha1").Cells(LINHA, 1).Value)
            
            End If
            
            LINHA = LINHA + 1
            
        Wend
       


    Anderson Diniz diniabr2011@gmail.com

    • Marcado como Resposta AndersonFDiniz2 sexta-feira, 3 de novembro de 2017 22:46
    sexta-feira, 3 de novembro de 2017 19:05
  • Ainda estou verificando se o código deu certo. Depois marco como respondido ou indico o que não deu certo.

    Anderson Diniz diniabr2011@gmail.com

    sexta-feira, 3 de novembro de 2017 19:06