Oi pessoal estou com um problema que não consigo resolver.
O que eu queria fazer era o seguinte:
Sempre que o valor constante coluna 17 for igual ou maior ao valor da coluna 9, a macro executasse automaticamente, ou seja, enviando um e-mail com a informação, sem que eu precisasse digitar o valor na coluna. Somente funciona se eu digitar o valor e clicar em Enter.
Obs.: A coluna 9 é uma fórmula, ou seja, não digito o valor.
Na coluna 17, o valor é digitado e quando o valor da coluna 9 (que é fórmula) atingir automaticamente o valor da coluna 16, o e-mail é disparado.
O que necessito é que o e-mail fosse disparado automaticamente, sem que eu necessitasse de digitar o valor e clicar em Enter.
Desta forma, gostaria que, com a planilha aberta e sem o uso de botão, ela executasse uma Macro com Loop sem parar (F2 + Entre) na Coluna 17, onde, ao encontrar a linha em branco, o Loop retornasse para o início da coluna 17, ficando o dia todo no Loop. Corro que, não estou conseguindo.
Caso alguém puder me ajudar, ficarei agradecido.
Segue abaixo a macro que de estou tentando resolver o problema:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OutApp As Object
Dim OutMail As Object
Dim texto As String
Set OutApp = CreateObject("Outlook.Application")
linha = 3
Do While Planilha11.Cells(linha, 9).Value
If Planilha11.Cells(linha, 9).Value <= Planilha11.Cells(linha, 17).Value Then
'Debug.Print linha
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "
[email protected]"
.CC = ""
.BCC = ""
.Subject = " A Ação " & Planilha11.Cells(linha, 1) & "," & " atingiu o valor " & Planilha11.Cells(linha, 17)
.Body = texto
.Send 'Utilize Send para enviar o email sem abrir o Outlook
End With
End If
linha = linha + 1
Loop
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Sub Macro3()
'
' Macro3 Macro
'
'
Dim OutApp As Object
Dim OutMail As Object
Dim texto As String
Set OutApp = CreateObject("Outlook.Application")
linha = 3
Do While Planilha11.Cells(linha, 9).Value
If Planilha11.Cells(linha, 9).Value <= Planilha11.Cells(linha, 17).Value Then
'Debug.Print linha
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "
[email protected]"
.CC = ""
.BCC = ""
.Subject = " A Ação " & Planilha11.Cells(linha, 1) & "," & " atingiu o valor " & Planilha11.Cells(linha, 17)
.Body = texto
.Send 'Utilize Send para enviar o email sem abrir o Outlook
End With
End If
linha = linha + 1
Range("Q3").Select
ActiveCell.FormulaR1C1 = ""
Range("Q4").Select
ActiveCell.FormulaR1C1 = ""
Range("Q5").Select
ActiveCell.FormulaR1C1 = ""
Range("Q6").Select
ActiveCell.FormulaR1C1 = ""
Range("Q7").Select
ActiveCell.FormulaR1C1 = ""
Range("Q8").Select
ActiveCell.FormulaR1C1 = ""
Range("Q9").Select
ActiveCell.FormulaR1C1 = ""
Range("Q10").Select
ActiveCell.FormulaR1C1 = ""
Range("Q11").Select
ActiveCell.FormulaR1C1 = ""
Range("Q12").Select
ActiveCell.FormulaR1C1 = ""
Range("Q13").Select
ActiveCell.FormulaR1C1 = ""
Range("Q14").Select
ActiveCell.FormulaR1C1 = ""
Range("Q15").Select
ActiveCell.FormulaR1C1 = ""
Range("Q16").Select
ActiveCell.FormulaR1C1 = ""
Range("Q3").Select
linha = linha + 1
Loop
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Obrigado.