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

Visual Basic - Retorno de documentação vencida


ThiagoBrs

Pergunta

Boa tarde pessoal, me cadastrei hoje no Forum e peço desculpas se estiver fazendo a postagem errado.

Já procurei ajuda em vários lugares, mas ninguém pode me ajudar e quando vi esse forum resolvi tentar.

Sou iniciante no VBA e estou tentando através de pesquisa (tentativa & erro) construir uma macro para o seguinte:

 

Tenho uma planilha no excel que possui alguns documentos de minha empresa, nele estão as datas de vencimento.

Eu precisava que ao abrir a planilha, ela me retornasse uma msgbox contendo os documentos que estão vencidos para melhorar o controle.

Se alguém puder me ajudar ficarei muito grato.

E mais uma vez peço perdão se estiver criando o post no lugar errado.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Não seria mais prático usar a Formatação Condicional e sinalizar as células em vermelho (ou algo do tipo) quando estivessem vencidas (ou seja, a data de vencimento é menor que o dia atual)? Assim você não precisaria de macros e ficaria mais claro para ver (afinal de contas a MsgBox só apareceria uma vez e neste caso você só olharia para a planilha e já veria o que está vencido).

Mas, se realmente você quer isso em uma MsgBox, poderia fazer o seguinte no Workbook_Open():

Dim i As Integer
Dim dtv As Date
Dim plan As Worksheet
Dim célVencto As String
Dim célDocto As String
Dim docto As String
Dim retorno As String

retorno = ""
Set plan = Me.Worksheets("Planilha1")
    
i = 1

Do While True
    célVencto = "A" & Trim(Str(i)) 'A1, A2, A3, ...
    célDocto = "B" & Trim(Str(i)) 'B1, B2, B3, ...
        
    dtv = plan.Range(célVencto).Value 'Pega a data de vencimento (coluna A)

    If dtv = #12:00:00 AM# Then 'Se a célula estiver vazia
        Exit Do 'Quebra o loop
    End If
    
    If dtv < Now Then 'Se o vencimento é anterior ao agora (Now)
        docto = plan.Range(célDocto).Value 'Pega o número do documento (coluna B)
        retorno = retorno & docto & ", "
    End If
    
    i = i + 1 'Vai para a linha seguinte
Loop

If Len(retorno) > 0 Then
    retorno = Left(retorno, Len(retorno) - 2) 'Tira o espaço e a vírgula do final

    MsgBox "Documentos vencidos: " & retorno
Else
    MsgBox "Não existem documentos vencidos!"
End If

Isso supondo que a sua Planilha1 tem a data de vencimento na coluna A e o número do documento na coluna B e que começam na linha 1 e não há valores vazios entre as linhas. Já tem séculos que não mexo com VBA (ou VB6), mas foi bom relembrar algumas coisas.

Abraços!

 

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço muito a sua ajuda!!

Eu também pensava que só com uma formatação condicional já bastaria para acompanhar, porém com o passar do tempo a planilha ficou enorme por conta dos vários polos e suas respectivas documentações e ficou mais difícil ficar verificando um por um dos documentos. Por isso tive a ideia de uma msgbox que apareceria e me retornaria os documentos vencidos, assim eu iria pontualmente em cada um deles para verificar.

Mais uma vez agradeço a sua valiosa ajuda!!

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,4k
×
×
  • Criar Novo...