Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Encontrar determinados valores em um intervalo usando loop, e executar comando

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
BrunoMotta
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Fev 15, 2017 10:37 am

Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por BrunoMotta » Qua Fev 15, 2017 11:08 am

Pessoal bom dia,
Sou novo no fórum, e fã de Tomás. Já aprendi bastante com ele.

Bem, estou precisando de ajuda. Criei uma planilha de controle de licenças aqui no meu trabalho, e meu chefe pediu para criar uma rotina de envio de e-mails, caso seja identificado alguns prazos expirando, como por exemplo:

Se a rotina encontrar valores como 180, 90, 60, e 30 (dias antes do vencimento), envia um e-mail de alerta para o chefe. Aqui na empresa usamos o outlook 365, já tenho o código testado para envio pelo 365, mas preciso criar um rotina com uma condição, que só envie um e-mail de alerta, quando encontrar um ou mais dos valores informados acima (180, 90, 60, 30) na coluna AA.
Tentei fazer uma rotina IF, mas ele envia vários e-mails quando encontra separadamente os valores no mesmo dia.

Para entenderem melhor, estes valores são calculados através da fórmula =DIAS([@[Data prazo legal]];HOJE()), coloquei a planilha para abrir junto com o Windows para funcionar melhor e não deixar passar nenhum dia que ela seja aberta, pois a rotina está executando com "Sub Workbook_Open()"".

Se conseguir criar a rotina de identificação do números na coluna, eu chamo a rotina de envio "Call EnviarEmail".



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.


srobles
Sabe muito
Sabe muito
Mensagens: 663
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por srobles » Qua Fev 15, 2017 11:36 am

BrunoMotta,

Isso é relativamente simples, dependendo apenas a disposição dos dados na planilha.
Uma possibilidade, seria você adicionar os dados da linha que tiver a condição verdadeira em outra aba (temporária), e a partir dessa lista enviar o e-mail. Ou adicionar uma observação na respectiva linha, na ultima coluna, exemplo : EXPIRANDO.

Abaixo deixo um exemplo para estudo.

Código: Selecionar todos

Sub validarLicenca()
    With ThisWorkbook.Sheets("Plan1")
        .Activate
        Dim vPrazo As Integer
        Dim ultimaColuna As Integer
        'Retornamos a ultima coluna preenchida e adicionamos +1
        ultimaColuna = .UsedRange.Columns.Count + 1
            'Comparamos o prazo a partir da linha 2 até a ultima preenchida
            For a = 2 To .UsedRange.Rows.Count
                'Armazenamos o prazo da linha atual para compararmos
                vPrazo = Cells(a, "A") 'Aponte aqui a coluna que contém o prazo da licença
                'Se o prazo for menor ou igual a 180
                If vPrazo <= "180" Then
                    'Escrevemos na ultima coluna da linha atual, a palavra "EXPIRANDO"
                    Cells(a, ultimaColuna) = "EXPIRANDO"
                End If
            Next
    End With
End Sub
Abs


Saulo

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Mathmatic
Manda bem
Manda bem
Mensagens: 156
Registrado em: Seg Out 24, 2011 1:50 pm

Re: Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por Mathmatic » Qui Fev 16, 2017 12:46 pm

sr. srobles,

seria possível o senhor adaptar este código sugerido por você, para o mesmo operar somente em células Visíveis ?

tive uma idéia para usá-lo em meu problema, mas precisaria que ele operasse somente em células Visíveis. é possível ?


obrigado por sua atenção.


att.
Mathmatic / SC

srobles
Sabe muito
Sabe muito
Mensagens: 663
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por srobles » Qui Fev 16, 2017 2:25 pm

Mathmatic,

Vou analisar este código e havendo um avanço, te retorno, ok?

Abs


Saulo

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

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.


srobles
Sabe muito
Sabe muito
Mensagens: 663
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por srobles » Qui Fev 16, 2017 11:42 pm

srobles escreveu:Mathmatic,

Vou analisar este código e havendo um avanço, te retorno, ok?

Abs
Mathmatic,

Segue abaixo o código alterado conforme solicitação.

Código: Selecionar todos

Sub validarLicenca()
    With ThisWorkbook.Sheets("Plan1")
        .Activate
        Dim vPrazo As Integer
        Dim ultimaColuna As Integer
        'Retornamos a ultima coluna preenchida.
        ultimaColuna = .UsedRange.Columns.Count 
            'Comparamos o prazo a partir da linha 2 até a ultima preenchida
            For a = 2 To .UsedRange.Rows.Count
                'Armazenamos o prazo da linha atual para compararmos
                vPrazo = Cells(a, "A") 'Aponte aqui a coluna que contém o prazo da licença
                'Se o prazo for menor ou igual a 180 e a linha estiver visível
                If vPrazo <= "180" And Cells(a,"A").EntireRow.Hidden = False Then
                    'Escrevemos na ultima coluna da linha atual, a palavra "EXPIRANDO"
                    Cells(a, ultimaColuna) = "EXPIRANDO"
                End If
            Next
    End With
End Sub
Abs


Saulo

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Mathmatic
Manda bem
Manda bem
Mensagens: 156
Registrado em: Seg Out 24, 2011 1:50 pm

Re: [CONCLUÍDO] Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por Mathmatic » Sex Fev 17, 2017 1:54 pm

tópico [CONCLUÍDO].

amigo srobles,

Funcionou perfeito para o que eu desejava.

parabéns mais uma vez e obrigado pela atenção dedicada às minhas dúvidas e necessidades.


até mais .

Abs.


att.
Mathmatic / SC

srobles
Sabe muito
Sabe muito
Mensagens: 663
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: [CONCLUÍDO] Encontrar determinados valores em um intervalo usando loop, e executar comando

Mensagem por srobles » Sex Fev 17, 2017 1:55 pm

Mathmatic escreveu:tópico [CONCLUÍDO].

amigo srobles,

Funcionou perfeito para o que eu desejava.

parabéns mais uma vez e obrigado pela atenção dedicada às minhas dúvidas e necessidades.


até mais .

Abs.
Mathmatic,

Opa, obrigado mais vez pelo feedback meu amigo!

Abs


Saulo

Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

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