Ir para conteúdo
Fórum Script Brasil
  • 0

Critérios de busca


Leonardo Assimos

Pergunta

Estou com o seguinte problema e gostaria de saber se alguém consegue me ajudar.

tenho uma lista na coluna "A" de agentes, na coluna "B" tenho a lista com os horários de login do agente e na Coluna "C" a lista de logout.

COL A COL B COL c

40023 06:00 11:02

40023 11:02 12:23

40026 14:31 20:51

40027 00:13 00:26

40030 17:18 17:18

40030 17:31 20:36

40030 20:37 20:42

40030 20:52 21:18

40030 21:19 23:01

40030 23:28 23:51

40033 12:02 15:13

na coluna "A" os agentes se repetem algumas vezes,

eu gostaria de pegar o primeiro resultado de cada agente da Coluna "B" e o ultimo resultado da coluna "C" de cada agente sendo que os agente sempre são diferentes:

exemplo:

COL A COL B COL C

40023 06:00 11:02

40023 11:02 12:23

40026 14:31 20:51

40027 00:13 00:26

40030 17:18 17:18

40030 17:31 20:36

40030 20:37 20:42

40030 20:52 21:18

40030 21:19 23:01

40030 23:28 23:51

40033 12:02 15:13

Resolução

COL A COL B COL C

40023 06:00 12:23

40026 14:31 20:51

40027 00:13 00:26

40030 17:18 23:51

40033 12:02 15:13

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá,

você pode fazer Via VBA com o codigo abaixo:

Sub Test()

Dim Col_A As String

Dim Col_B As Date

Dim Col_C As Date

Dim l As Integer

l = 1

Range("A1:C11").Select

Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1") _

, Order2:=xlAscending, Key3:=Range("C1"), Order3:=xlAscending, Orientation:=xlTopToBottom

While Cells(l, 1) <> ""

If Str(Cells(l, 1)) = Col_A Then

Col_C = Cells(l, 3)

Cells(l2, 7) = Col_C

l = l + 1

Else

Col_A = Str(Cells(l, 1))

Col_B = Cells(l, 2)

Col_C = Cells(l, 3)

l2 = l2 + 1

Cells(l2, 5) = Col_A

Cells(l2, 6) = Col_B

Cells(l2, 7) = Col_C

l = l + 1

End If

Wend

End Sub

ou se quiser pode tentar usar o SUBTOTAL agrupando por MAXIMO.

abs,

Lisandro Olivera

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

Public Sub Busca(agente As String)
    'Instância de variáveis
    Dim menorHorario As Date
    Dim maiorHorario As Date
    Dim linha As Long
    Dim encontrado As Boolean
    
    'Inicializaão de variáveis
    menorHorario = Format("23:59:59", "HH:MM:ss")
    maiorHorario = Format("00:00:00", "HH:MM:ss")
    linha = 1
    encontrado = False
    
    With Plan1
        'Varredura
        While .Cells(linha, 1) <> Empty
            'testa agente
            If .Cells(linha, 1) = agente Then
                encontrado = True
                'testa menor horário
                If .Cells(linha, 2) < menorHorario Then
                    menorHorario = .Cells(linha, 2)
                    
                End If
                
                'testa maior horário
                If .Cells(linha, 3) > maiorHorario Then
                    maiorHorario = .Cells(linha, 3)
                    
                End If
                
            End If
            
            'incremento do índice da linha
            linha = linha + 1
            
        Wend
        
    End With
    
    If Not encontrado Then
        MsgBox "Agente '" & agente & "' não encontrado.", vbCritical, "Alerta"
    
    Else
        MsgBox "Acesso agente '" & agente & "':" & vbNewLine & "Inicio: " & menorHorario _
            & vbNewLine & "Fim: " & maiorHorario, vbInformation, "Acessos"
    End If
    
End Sub

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...