Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por marcel1314
#39234
Saudações,
Preciso que o código subcitado envie um e-mail automáticamente quando a quantidade de dias na coluna de "está vencido a quanto tempo" seja igual ou maior que quinze, porém o evento change que estou usando só me permite caso eu altere o valor da celula (que é feito por formula), mesmo se não mudar, só manda o email quando clico na celula, e queria o fazer quando abrisse a planilha ou quando salva-se, que ai conseguiria agendar uma tarefa para abrir a planilha todo dia e me enviar o email ou setar um macro para salvar e ainda assim enviar o email, alguem sabe de alguma solução que não utiliza o evento change ou como automatizar isso da melhor maneira?

exemplo da planilha:

1 coluna = equipamento
2 coluna = identificacao
3 coluna = data de calibração
4 coluna = modelo
5 coluna = status (if 8 >= "15" then "programar calibração")
6 coluna = email enviado? (sim ou nada)
7 coluna = =today()
8 coluna = dias fora de calibração (column7-column3)


Codigo:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim OutApp As Object
    Dim OutMail As Object
    Dim texto As String
    linha = ActiveCell.Row - 1
    If Target.Address = "$H$" & linha Then
        If Plan1.Cells(linha, 8) >= 15 And Plan1.Cells(linha, 6) <> "SIM" Then
       
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
   
            texto = "Prezado responsável" & vbCrLf & vbCrLf & _
                    " O equipamento " & Plan1.Cells(linha, 1) & " de serial number " & _
                    Plan1.Cells(linha, 2) & " terá sua calibração vencida no dia " & _
                    Plan1.Cells(linha, 3) & vbCrLf & vbCrLf & _
                    "Favor programar calibração do equipamento." & _
                    "CRC: " & _
                    vbCrLf & vbCrLf & _
                    "Atenciosamente," & vbCrLf & "Calibração bot"
        End If
        With OutMail
            .To = ""
            .CC = ""
            .BCC = ""
            .Subject = ""
            .Body = texto
            .Display 'send para enviar
        End With
        On Error Resume Next
       
        Set OutMail = Nothing
        Set OutApp = Nothing
       
        If Plan1.Cells(linha, 6) <> "SIM" Then
        Plan1.Cells(linha, 6) = "SIM"
        End If
       
    End If
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord