Notifications
Clear all

Alarme sonoro e alarme por e-mail

9 Posts
2 Usuários
0 Reactions
1,924 Visualizações
(@pfmjr78)
Posts: 7
Active Member
Topic starter
 

Bom dia pessoal,

Preciso configurar algum tipo de alarme e envio de e-mail se possivel em uma planilha.
Digamos assim uma pessoa vai preenchendo a coluna A1 ate A50 com numeros... um determinado momento quando atingir a somatório >= 2000 emitir um alarme sonoro e um e-mail pre determinado para mim dizendo que aquela planilha atingiu o limite.

O ideal seria os dois tipos de alarme, mas se for possivel somente um sem problema também.

Desde já agradeço a ajuda de todos

Abraço
Paulo

 
Postado : 11/07/2018 7:28 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Bom dia, a respeito do som, eu nunca fiz nada.

Sobre o email tenho esse código que nunca testei, no meu trabalho gmail é bloqueado pela T.I.

Sub TesteEmailGmail()
    Dim iMsg, iConf, Flds
 
    'Seta as variáveis, lembrando que o objeto Microsoft CDO deverá estar habilitado em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
 
    'Configura o componente de envio de email
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "EmailOrigem@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "SENHA AQUI"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update
 
    With iMsg
        'Email do destinatário
        .To = "EmailDestino@hotmail.com.br"
        'Seu email
        .From = "EmailOrigem@gmail.com"
        'Título do email
        .Subject = "Isto é um teste de Envio de email"
        'Mensagem do e-mail, você pode enviar formatado em HTML
        .HTMLBody = "Mensagem enviada com o gmail."
        'Seu nome ou apelido
        .Sender = "Teste"
        'Nome da sua organização
        .Organization = "Empresa Teste"
        'email de responder para
        .ReplyTo = "EmailOrigem@gmail.com"
        'Anexo a ser enviado na mensagem
        '.AddAttachment ("C:relatoctbr145.##r")
        'Passa a configuração para o objeto CDO
        Set .Configuration = iConf
        'Envia o email
        .Send
End With
 
    'Limpa as variáveis
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End Sub

Não sei se pode postar fonte de outros foruns, mas segue algumas recomendações

https://www.guiadoexcel.com.br/enviar-e ... o-outlook/
https://www.guiadoexcel.com.br/envio-de ... l-com-vba/

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 11/07/2018 7:38 am
(@pfmjr78)
Posts: 7
Active Member
Topic starter
 

Obrigado Carlos mais uma vez.
A minha duvida sobre a questão do email é como tenho que fazer este código entender que quando atingir a somatório >= 2000 enviar o e-mail

Já fiz a liberação do Microsoft CDO for Windows 2000 Library e já coleio o código no VBA, mas como ligo este código a questão acima.

Valeu pela ajuda!!!! Abraço

 
Postado : 11/07/2018 8:01 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Você pode fazer assim:

Sub Verificação()
    If WorksheetFunction.Sum(Range("A1:A50")) >= 2000 Then
'   Coloca aqui rotina do email
    Else
'   Não faz nada
    End If
End Sub

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 11/07/2018 8:28 am
(@pfmjr78)
Posts: 7
Active Member
Topic starter
 

Carlos, não abusando da sua ajuda, poderia dar uma olha no que poderia estar de errado neste arquivo da forma que eu fiz? Não sou um entendedor profundo de macros e VBA, conheço o básico.
Aparentemente não funcionou, pois não recebi o e-mail e aparentemente não fez nada quando ficou >2000

Valeu obrigado mais uma vez

 
Postado : 11/07/2018 11:43 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Vou ser sincero que também não sou expert em VBA rsrs

Mas tanta assim:

Sub Verificação()
    If WorksheetFunction.Sum(Range("A1:A50")) >= 2000 Then
'   Coloca aqui rotina do email
    
    Dim iMsg, iConf, Flds

    'Seta as variáveis, lembrando que o objeto Microsoft CDO deverá estar habilitado em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    'Configura o componente de envio de email
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = 465
    Flds.Item(schema & "smtpauthenticate") = 1
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = "pfmjr78@gmail.com"
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = "teste"
    Flds.Item(schema & "smtpusessl") = 1
    Flds.Update

    With iMsg
        'Email do destinatário
        .To = "pfmjr78@gmail.com"
        'Seu email
        .From = "pfmjr78@gmail.com"
        'Título do email
        .Subject = "Isto é um teste de Envio de email"
        'Mensagem do e-mail, você pode enviar formatado em HTML
        .HTMLBody = "Mensagem enviada com o gmail."
        'Seu nome ou apelido
        .Sender = "Teste"
        'Nome da sua organização
        .Organization = "Empresa Teste"
        'email de responder para
        .ReplyTo = "teste@gmail.com"
        'Anexo a ser enviado na mensagem
        '.AddAttachment ("c:fatura.txt")
        'Passa a configuração para o objeto CDO
        Set .Configuration = iConf
        'Envia o email
        .Send
    End With

    'Limpa as variáveis
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    
    Else

'   Não faz nada
    End If
End Sub

O erro era porque você colocou a rotina inteira do email
Vc tem que tirar o Sub NomedaMacro () e o End ao final quando for assim!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 11/07/2018 12:11 pm
(@pfmjr78)
Posts: 7
Active Member
Topic starter
 

Obrigado Carlos mais uma vez, mas aparentemente não funcionou também. Fiz como vc disse, ai digito nos campos e na acontece.
Se conseguir me ajudar em mais algo agraço muito!!!!
Valeu pela ajuda!!!!

 
Postado : 11/07/2018 3:05 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Hoje em casa eu vou testar!

Trabalho com Excel todo dia, chego em casa e quero distancia kkkk

Abraço!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 12/07/2018 5:03 am
(@pfmjr78)
Posts: 7
Active Member
Topic starter
 

Entendo bem como é isso!!! kkkkk

Valeu obrigado por toda ajuda!!!

 
Postado : 12/07/2018 7:38 am