none
Não consigo realizar condições com datas e dados de maneira precisa RRS feed

  • Pergunta

  • Estou realizando um tipo de filtro no qual eu especifico um variável string dentro do programa e depois seleciono a data máxima e mínima que teve ocorrência desta variável, mas ao realizar nem todas as vezes realizou a contagem de maneira certa, por favor me ajudem...

     Segue a programação

    Dim a As Integer, b As Integer, Cont As Integer, D As Integer, E As Integer, F As Integer, G As Integer, H As Integer
    Dim I As Integer, J As Integer, x As Integer, w As String

    Private Sub cmdAnalisar_Click()
        
        If txtDataInicial.Text = "" Then
            MsgBox "Necessário inserir todos os Parâmetros", vbCritical, "Preencha os Parâmetros!"
        
        ElseIf txtDataFinal.Text = "" Then
            MsgBox "Necessário inserir todos os Parâmetros", vbCritical, "Preencha os Parâmetros!"
            
        End If
        
        VerificarUltimo
        ContarValores
        
    End Sub
    Private Sub ContarValores()

        x = 2
        Do While Sheets("Relatorios").Cells(x, 1) <> ""
            w = Sheets("Relatorios").Cells(x, 1).Text
              
            b = 3
            Cont = 0
            Do While a > b
                If w = Plan1.Cells(b, 8).Text And txtDataInicial.Text < Plan1.Cells(b, 7) And txtDataFinal.Text > Plan1.Cells(b, 7) Then
                    Cont = Cont + 1
                End If
                b = b + 1
            Loop
            Sheets("Relatorios").Cells(x, 2) = Cont
            x = x + 1
        Loop

    End Sub
    Private Sub txtDataInicial_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        txtDataInicial = Format(txtDataInicial, dd, mm, yyyy)
    End Sub
    Private Sub txtDataFinal_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        txtDataFinal = Format(txtDataFinal, dd, mm, yyyy)
    End Sub
    Private Sub cmdSair_Click()
        End
    End Sub
    Private Sub VerificarUltimo()
        a = Plan1.Cells(Rows.Count, 1).End(xlUp).Row + 1
    End Sub


      

    quarta-feira, 27 de julho de 2016 20:42

Todas as Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Troque:

    If w = Plan1.Cells(b, 8).Text And txtDataInicial.Text < Plan1.Cells(b, 7) And txtDataFinal.Text > Plan1.Cells(b, 7) Then

    por:

    If w = Plan1.Cells(b, 8).Value _
    And CDate(txtDataInicial.Text) < Plan1.Cells(b, 7).Value _
    And CDate(txtDataFinal.Text) > Plan1.Cells(b, 7).Value Then
    
    
    A regra é: referencia à células acessando a propriedade .Value e a datas em caixas de texto (TextBox) usando CDate(TextBox1.Text)


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Sugerido como Resposta André Santo quinta-feira, 28 de julho de 2016 14:33
    quinta-feira, 28 de julho de 2016 13:38
    Moderador
  • Muito Obrigado, Solucionou o problema.
    segunda-feira, 1 de agosto de 2016 17:28