Ir ao conteúdo
  • Cadastre-se

Cândido Lorencini

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Tudo que Cândido Lorencini postou

  1. 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.
  2. Obrigado por ajudar! Estou tentando resolver a bastante tempo. Infelizmente não estou conseguindo, pois, esta macro seria um piloto a uma outra que estou trabalhando na Planilha de ações-Bovespa). Tentei com a marco que você enviou, porém, o excel já abre com erro, conforme print anexo. Inserir o e-mail real e o erro continuou. Infelizmente continuarei a pedir ajuda ao Clube, pois, realmente não sei como resolver. Obrigado uma vez mais! CONTROLE CND'S.rar
  3. Bom dia! Fiz conforme informado, porém, não funcionou. Segue o código e em anexo a planilha com o VBA: Sub Workbook_Open() 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") Set OutMail = OutApp.CreateItem(0) linha = Target.Row If Planilha6.Cells(linha, 11).Value = Planilha6.Cells(linha, 10).Value Then texto = "Prezado(a)" & "," & vbCrLf & vbCrLf & _ " A CND Estadual da " & Planilha6.Cells(linha, 1) & "," & " Filial " & Planilha6.Cells(linha, 2) & "," & " emitida em " & _ Planilha6.Cells(linha, 8) & "," & " está vencendo ou vencida." & _ vbCrLf & vbCrLf & " Favor providenciar a renovação." & vbCrLf & vbCrLf & _ "Atenciosamente." & vbCrLf & vbCrLf & _ "Regularidade Fiscal" With OutMail .To = "[email protected]" .CC = "" .BCC = "" .Subject = " CND Estadual vencendo/vencida - " & Planilha6.Cells(linha, 1) & "," & " Filial - " & Planilha6.Cells(linha, 2) .Body = texto .Send 'Utilize Send para enviar o email sem abrir o Outlook End With End If On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End Sub End Sub Com certeza fiz alguma coisa errada. Teria com montar o VBA na minha planilha (em anexo) com suas sugestões? Desde já lhe agradeço. CONTROLE CND'S.zip
  4. Eu retirei esta condição (If Target.Address = "$I$" & linha Then) Para mim funcionou também, porém, acredito que esteja de forma manual ainda. O exemplo que você fez acho que está no modo manual. Deixa esta macro para ser executada amanhã. Ou seja, no campo que você digitou manualmente a data, informa 30/08/2019 e no outro campo deixa =Hoje(). Amanhã ao abrir a planilha, sem digitar nada, ela executará a macro e enviará o e-mail?
  5. Sim tentei, porém, a macro não envia o e-mail automático quando o resultado da fórmula de uma célula atinge o valor da outra célula. Exemplo: Célula I3 é igual a seguinte fórmula: =Hoje() Célula P3 = 29/08/2019 A macro somente executa se eu digitar a data e clicar em enter Estou querendo da seguinte formar: Se eu deixar a célula I3 com a fórmula =Hoje () E a célula P3 com a data de amanhã 30/08/2019 Desta forma, amanhã eu abrir a planilha, a macro seja executada, pois, as datas serão as mesmas e eu não precisaria digitar a data e não precisaria clicar no enter.
  6. Obrigado por responder. A macro é executada, porém, não é de forma automática.Está executando de forma manual. Preciso que a macro execute sem a necessidade de clicar no Enter, ou seja, quando a fórmula atingir o valor (sem digitação e sem clicar no enter) que seja executada a macro.
  7. Oi pessoal estou com um problema que não consigo resolver. O que eu queria fazer era o seguinte: Sempre que o valor constante linha 16 for igual ao valor da linha 9, a macro executasse automaticamente, ou seja, enviando um e-mail com a informação, segue eu precisasse digitar o valor na linha. Somente funciona se eu digitar o valor e clicar em Enter. Obs.: A linha 9 é uma fórmula, ou seja, não digito o valor. Na linha 16, o valor é digitado e quando o valor da linha 9 (que é fórmula) atingir automaticamente o valor da linha 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. 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") Set OutMail = OutApp.CreateItem(0) linha = Target.Row If Target.Address = "$I$" & linha Then If Planilha11.Cells(linha, 16) = Planilha11.Cells(linha, 9) Then With OutMail .To = "[email protected]" .CC = "" .BCC = "" .Subject = " A Ação " & Planilha11.Cells(linha, 1) & "," & " atingiu o valor " & Planilha11.Cells(linha, 16) .Body = texto .Send 'Utilize Send para enviar o email sem abrir o Outlook End With End If On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End If End Sub

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!