Ir ao conteúdo

Posts recomendados

Postado

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.

Postado

Para executar a macro automaticamente pode ser questão de usar o evento correto.

 

Seu código está sendo ativando em Worksheet_Change,

 

Já tentou com Worksheet_Calculate?

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!