Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Encontrar determinados valores em um intervalo usando loop, e executar comando
-
- 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
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".
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".
Re: Encontrar determinados valores em um intervalo usando loop, e executar comando
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.
Abs
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
Re: Encontrar determinados valores em um intervalo usando loop, e executar comando
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.
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.
Re: Encontrar determinados valores em um intervalo usando loop, e executar comando
Mathmatic,
Vou analisar este código e havendo um avanço, te retorno, ok?
Abs
Vou analisar este código e havendo um avanço, te retorno, ok?
Abs
Re: Encontrar determinados valores em um intervalo usando loop, e executar comando
Mathmatic,srobles escreveu:Mathmatic,
Vou analisar este código e havendo um avanço, te retorno, ok?
Abs
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
Re: [CONCLUÍDO] Encontrar determinados valores em um intervalo usando loop, e executar comando
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.
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.
Re: [CONCLUÍDO] Encontrar determinados valores em um intervalo usando loop, e executar comando
Mathmatic,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.
Opa, obrigado mais vez pelo feedback meu amigo!
Abs