COMO ENCONTRAR A MENOR DATA COM CRITÉRIO DE NOME DO CLIENTE

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

COMO ENCONTRAR A MENOR DATA COM CRITÉRIO DE NOME DO CLIENTE

Mensagempor eltonpaulo » Ter Ago 13, 2019 12:34 am

Amigos, como estão?

Preciso de ajuda.

Dentro de um USERFORM, preciso retornar em uma textbox a menor data de uma coluna que está na planilha "DEVEDORES", porém, precisa ser com dois critérios:
1) o nome do cliente que for apresentado em uma textbox.
2) status de pagamento (PAGOU ou A PAGAR).

Ele precisa procurar essas condicionais e retornar a menor data. Sinceramente, pra mim, não deveria ser diferente do modo de funcionamento de um sumifs, mas é kkk

Em suma, já estou com o meu sistema praticamente pronto, porém não estou conseguindo uma solução para esse meu problema. Não consegui nada compatível ao MÍNIMOSES.

Alguém pode me ajudar?
eltonpaulo
Membro
Membro
 
Mensagens: 38
Registrado em: Qui Ago 02, 2012 8:25 am
Has thanked: 11 times
Have thanks: 3 times

{ SO_SELECT }

Re: COMO ENCONTRAR A MENOR DATA COM CRITÉRIO DE NOME DO CLIE

Mensagempor wagner » Sex Ago 16, 2019 3:40 pm

eltonpaulo,

Boa tarde!

Na sua demanda falta uma série de informações para que se possa programar corretamente. Desse modo, fiz as seguintes suposições:
1 - Que sua aba DEVEDORES possui 3 colunas.
2 - Em A1 está NOME, em B1 DATA e em C1 STATUS.
3 - Que os dados começam na linha 2.
4 - Que você tem um Userform que possui um ComboBox e uma Caixa de Texto.
5 - Que o Userform e os dois controles existentes neles possuem os nomes padrão dados pelo próprio VBA.
6 - Que os nomes da coluna A são carregados para o Combobox quando o Userform é iniciado.
7 - Que ao escolher um nome no userform, a aba DEVEDORES é varrida e a data mais antiga é carregada na caixa de texto.

Dito isso, para testar, como não podemos anexar arquivos aqui e não consigo postar arquivos em sites de compartilhamento aqui no meu trabalho, pegue um arquivo novo, insira as suposições tal e qual eu fiz acima e insira os códigos abaixo:

1 - Para carregar os nomes para o combobox:
Código: Selecionar todos
Private Sub UserForm_Initialize()
    Dim i As Long
    Dim UltimaLinha As Long
   
    UltimaLinha = Sheets("DEVEDORES").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    If UltimaLinha < 2 Then UltimaLinha = 2
   
    For i = 2 To UltimaLinha
        ComboBox1.AddItem Range("A" & i).Value
    Next i
End Sub


2 - Para carregar a última data de uma cliente para a caixa de texto:
Código: Selecionar todos
Private Sub ComboBox1_Change()
    Dim i As Long
    Dim j As Long
    Dim UltimaLinha As Long
    Dim Data As Date
   
    UltimaLinha = Sheets("DEVEDORES").Cells(Cells.Rows.Count, 1).End(xlUp).Row
    If UltimaLinha < 2 Then UltimaLinha = 2
   
    For i = 2 To UltimaLinha
        If Range("A" & i).Value = ComboBox1.Value Then
            Data = CDate(Range("B" & i).Value)
            For j = i + 1 To UltimaLinha
                If Range("A" & j).Value = Range("A" & i).Value Then
                    If Range("B" & j).Value < Range("B" & i).Value Then
                        If Range("C" & j).Value = "PAGOU" Or Range("C" & j).Value = "A PAGAR" Then
                            TextBox1.Text = Range("B" & j).Value
                        Else
                            TextBox1.Text = ""
                        End If
                    Else
                        TextBox1.Text = Data
                    End If
                End If
            Next j
        Else
            If i >= UltimaLinha Then
                TextBox1.Text = Data
                Exit Sub
            End If
        End If
    Next i
End Sub
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5583
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 102 times
Have thanks: 2360 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Google [Bot], kiko e 6 visitantes

cron