Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Macro para exibir MsgBox de Vencimento

Dúvidas gerais sobre Excel
Avatar do usuário
Luiz-Laaz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qua Mai 04, 2011 5:10 pm
Localização: Santo Antonio do Leste - MT

Macro para exibir MsgBox de Vencimento

Mensagem por Luiz-Laaz »

Ola, Pessoal.

Sou novo no forum, porem ja tirei varias duvidas com os topicos do Forum Tomas Vasques.
Meu problema é o seguinte, tenho uma planilha com uma relação e tem uma coluna com datas de vencimento, e eu queria uma macro que quando ao abrir o excel aparecesse
uma MsgBox avisando que possuem datas que estão a 5 dias do vencimento, por exemplo "existem datas com menos de 5 dias p/ o vencimento". Quebrei bastante a cabeça porem não obtive sucesso, até consegui mai com um botão que eu apertava ai ele aparecia a MsgBox. Mais queria uma que ao abrir a planilha aparecesse a mensagem.
Se possivel me ajudem a estrear o Forum com o pé direito.rsrs.


Abraço a Todos.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Mauro Coutinho »

Luiz, seja bem vindo ao forum.

Quanto a sua questão dependeria de mais detalhes se fosse para construir uma rotina, Qual o Nome da Aba que contém as informações, em qual ou quais células estão os vencimentos, ente outras...., mas como você disse que tem uma rotina associada a um botão e funcionando, então, seria somente o caso de copiar esta rotina para um dos Eventos abaixo :
No Evento doWorkBook quando abrir : - Private Sub Workbook_Open() ou,
No Evento da Aba que estão as datas : - Private Sub Worksheet_Activate()

Se tiver alguma dificuldade na adaptação, poste a rotina que está utilizando para facilitar a analise, ou anexee um exemplo reduzido e compactado do seu arquivo.

Lembrando que uma questão parecida já foi tratada no Tópico abaixo, de uma olhada e veja se ajuda:
msgbox com conteúdo de uma determinada celula
viewtopic.php?f=6&t=564&p=4143&hilit=msgbox#p4143

abraços


Avatar do usuário
Luiz-Laaz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qua Mai 04, 2011 5:10 pm
Localização: Santo Antonio do Leste - MT

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Luiz-Laaz »

Ola Mauro

Primeiramente obrigado pelas boas vindas e pela resposta,

olha só:
Imagem
nessa imagem na coluna E tem uma fórmula que calcula quantos dias faltam para vencer com base na data de vencimento na coluna D,
o que eu quero é que toda vez que aparecer em alguma linha da coluna E a frase "Menos de Cinco Dias", apareça uma MsgBox quando eu abrir a planilha avisando que existem datas,
com menos de cinco dias para o vencimento.

parece simples mais naum dei conta mesmo.

se a imagem não aparecer segue denovo:
Imagem

Se tiver mais alguem que possa ajudar eu agradeço.

Grato.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Mauro Coutinho »

Luiz, como não disse o nome da Planilha e do arquivo, constrtui uma rotina basica, é só alterar o nome da Aba que contem a lista dos vencimentos :
Na rotina abaixo, é feita a pesquisa na coluna E conforme informou, pela ocorrência de menos 5 dias, e para não ficar emitindo várias vezes a Mensagem, pois não sei quantos lançamentos são, optei por emiti-la somente quando localizar a primeira ocorrência, mas se quiser todasa é só tirar a linha Exit Sub :

Então no Evento OPEN do WorkBook coloque :

Código: Selecionar todos

Private Sub Workbook_Open()
    Call LocalizaPrimeiroVencido
End Sub
E em Modulo coloque :

Código: Selecionar todos

Sub LocalizaPrimeiroVencido()
Dim I As Variant

Dim wshVenc As Worksheet
Set wshVenc = Worksheets("BASE") 'Altere para o nome da sua Aba
    
    For Each I In wshVenc.Range("E2:E" & wshVenc.Range("A65536").End(xlUp).Row)
        If I = "Menos de Cinco Dias" Then
             MsgBox "existem datas,com menos de cinco dias para o vencimento"
             Exit Sub
        End If
    Next

End Sub
Se preferir, pode colocar a rotina direto no evento sem precisar fazer a chamada.
Qualquer duvida retorne.

[]s


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Luiz-Laaz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qua Mai 04, 2011 5:10 pm
Localização: Santo Antonio do Leste - MT

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Luiz-Laaz »

Boa Tarde Mauro Coutinho,

Eu fiz como vc me disse em sua resposta anterior e ficou como eu queria que ficase, porem ela só abre a MsgBox quando eu ,
mando ele executar macro pelo editor VBA, quando eu abro o arquivo ele não abre a MsgBox. Fiz certinho como vc me disse, troquei o nome da aba para GTA que é
o nome da minha, e o nome do arquivo é Controle de GTAs, ai mando executar macro e ele mostra a MsgBox. porque sera que não abre quando eu abro o arquivo.



Grato..


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Mauro Coutinho »

Luiz, para ser executada quando abre o Arquivo a rotina tem de ser colocada no Evento OPEN do Workbook :

Faça o Seguinte, abra o Arquivo :
ALT + F11 - abre a Janela do VBA, procure na Lado esquerdo EstaPasta_de_trabalho, de dois Cliques no mesmo e cole a rotina que postei :

Código: Selecionar todos

Private Sub Workbook_Open()
    Call LocalizaPrimeiroVencido
End Sub
Assim será excecutado quando abrir, da forma acima estamos pedindo para rodar a macro LocalizaPrimeiroVencido, mas se quisermos podemos colocar direto no evento, ficando :

Código: Selecionar todos

Private Sub Workbook_Open()
    Dim I As Variant
    Dim wshVenc As Worksheet
    Set wshVenc = Worksheets("BASE") 'Altere para o nome da sua Aba
        
        For Each I In wshVenc.Range("E2:E" & wshVenc.Range("A65536").End(xlUp).Row)
            If I = "Menos de Cinco Dias" Then
                 MsgBox "existem datas,com menos de cinco dias para o vencimento"
                 Exit Sub
            End If
        Next

End Sub
Qq duvida retorne, por hoje chega de trabalhar, agora estou indo pra casa.

abraços


Avatar do usuário
Luiz-Laaz
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qua Mai 04, 2011 5:10 pm
Localização: Santo Antonio do Leste - MT

Re: Macro para exibir MsgBox de Vencimento [RESOLVIDO]

Mensagem por Luiz-Laaz »

Mauro Coutinho,

Muito obrigado por sua ajuda, chegamos no que eu queria, fiz como vc me disse e deu
tudo certo.
fico muito feliz e espero que esse Tópico ajude outras pessoas.
o Mundo seria bem melhor se tivesse mais pessoas como vc, dispostas a ajudar outras.


Fico muito grato.

Att.


Luiz Augusto A. Zanirato


NataliaPena
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Jun 21, 2011 9:03 am

Re: Macro para exibir MsgBox de Vencimento

Mensagem por NataliaPena »

Olá!

Tentei usar esse ccódigo mas deu um erro na linha Set wshVenc = Worksheets("BASE") 'Dados
Fiz algo de errado?

Obrigada!


Felipe Dasi
Colaborador
Colaborador
Mensagens: 54
Registrado em: Seg Jul 05, 2010 6:56 am

Re: Macro para exibir MsgBox de Vencimento

Mensagem por Felipe Dasi »

Natalia
Veja se a sua planilha, onde estão os dados chama-se BASE, caso não renomeie.
Anexo coloquei a planilha sem a formula, pois a mesma não foi exposta, mas dá para voce ver.
Abs
Anexos
planilha vencimento.rar
(6.4 KiB) Baixado 948 vezes


lmlperes
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Seg Mar 14, 2016 5:19 pm

Re: Macro para exibir MsgBox de Vencimento

Mensagem por lmlperes »

Boa noite.

Estou começando a estudar VBA agora.

Algupem "traduz" pra mim esse trecho: .Range("E2:E" & wshVenc.Range("A65536").End(xlUp).Row) ?

Não consigo entender como funciona\significa.

Obrigada!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder