ThiagoBrs Postado Outubro 19, 2016 Denunciar Share Postado Outubro 19, 2016 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Outubro 22, 2016 Denunciar Share Postado Outubro 22, 2016 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ThiagoBrs Postado Outubro 25, 2016 Autor Denunciar Share Postado Outubro 25, 2016 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!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ThiagoBrs Postado Outubro 25, 2016 Autor Denunciar Share Postado Outubro 25, 2016 (editado) Deus Certo!! Obrigado!! Editado Novembro 9, 2016 por ThiagoBrs Deus certo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ThiagoBrs
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
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.