DigusX
Membro Pleno-
Posts
34 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que DigusX postou
-
Excel Rodar macro quando o conteúdo da célula é alterado via fórmula ou manualmente
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Está havendo um outro problema. Ela perdeu a função de só enviar e-mail quando alguma célula da coluna M for editada. Depois da alteração que eu fiz, sempre quando muda qualquer célula de qualquer coluna ele envia um e-mail. Às vezes até mesmo 3 e-mails repetidos. -
Excel Buscar toda a coluna ao invés de somente uma célula
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Deu certo não! Pode deixar que isso aí eu resolvo fazendo: .To = "e-mail" 'Digite o e-mail que deseja, ou vários e-mail. Separando-os com ; Me ajuda no seguinte se possível: Minha fórmula real é: If Target.Address = "$M$" & linha Then Porém ele só envia o e-mail quando alguma célula da coluna M é alterada manualmente. Por esse motivo eu troquei essa fórmula aí por: If Range("M2").Value <> PrevVal Then Acontece que depois disso qualquer célula de qualquer coluna que sofre alteração Manualmente ou via Fórmula acaba sendo enviado por e-mail. Eu preciso que envie por e-mail somente quando alguma célula da coluna M mudar via fórmula. Obrigado amigo! -
Excel Buscar toda a coluna ao invés de somente uma célula
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Tá dando Next sem for Acho que ele não está identificando a coluna O como sendo a coluna da lista de emails. "" & Planilha10.Cells(linha, 15) & "" 'Esse 15 não é a linha não, é a coluna O Minha lista de emails está na coluna O. Na minha fórmula eu estava identificando como 15. -
Excel Buscar toda a coluna ao invés de somente uma célula
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Isso! tenho vários e-mail em uma coluna Private Sub Worksheet_Change(ByVal Target As Range) 'Envia e-mail pelo Outlook Dim OutApp As Object Dim OutMail As Object Dim texto As String Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) linha = ActiveCell.Row - 1 'If Target.Address = "$M$" & linha Then If Range("M2").Value <> PrevVal Then If Planilha10.Cells(linha, 13) = "Sim" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "O item: " & Planilha10.Cells(linha, 3) & " necessita de reparo" & "." & vbCrLf & vbCrLf & _ End If If Planilha10.Cells(linha, 13) = "Não" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "Foi reparado o item: " & Planilha10.Cells(linha, 3) & vbCrLf & vbCrLf & _ End If PrevVal = Range("M2").Value With OutMail .To = "" & Planilha10.Cells(linha, 15) & "" .CC = "" .BCC = "" .Subject = "Título do e-mail" .Body = texto .Display 'Utilize Send para enviar o email sem abrir o Outlook End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End If -
Excel Rodar macro quando o conteúdo da célula é alterado via fórmula ou manualmente
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Dá pra adicionar em EstaPastaDeTrabalho: Private Sub Worksheet_Open() PrevVal = Planilha10.Range("M2").Value End Sub E criar um Módulo: Public PrevVal As Variant Porque aí quando você abrir a planilha ele irá gravar os valores. O curioso é que mesmo sem isso que eu mencionei acima a planilha está funcionando. Não entendo muito de VBA, não sei dizer se If Planilha10.Cells(linha, 13) = "Sim" Then está compensando o PrvVal vazio. -
Excel Buscar toda a coluna ao invés de somente uma célula
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Nesse caso aqui, como eu faço para ao invés dele buscar a linha ele buscar toda a coluna? With OutMail .To = "" & Planilha10.Cells(linha, 15) & "" -
Excel Rodar macro quando o conteúdo da célula é alterado via fórmula ou manualmente
DigusX respondeu ao tópico de DigusX em Microsoft Office e similares
Problema resolvido! Private Sub Worksheet_Change(ByVal Target As Range) 'Envia e-mail pelo Outlook Dim OutApp As Object Dim OutMail As Object Dim texto As String Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) linha = ActiveCell.Row - 1 'If Target.Address = "$M$" & linha Then If Range("M2").Value <> PrevVal Then If Planilha10.Cells(linha, 13) = "Sim" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "O item: " & Planilha10.Cells(linha, 3) & " necessita de reparo" & "." & vbCrLf & vbCrLf & _ End If If Planilha10.Cells(linha, 13) = "Não" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "Foi reparado o item: " & Planilha10.Cells(linha, 3) & vbCrLf & vbCrLf & _ End If PrevVal = Range("M2").Value With OutMail .To = "e-mail para quem deseja enviar" .CC = "" .BCC = "" .Subject = "Título do e-mail" .Body = texto .Display 'Utilize Send para enviar o email sem abrir o Outlook End With On Error GoTo 0 Set OutMail = Nothing Set OutApp = Nothing End If -
Excel Buscar toda a coluna ao invés de somente uma célula
DigusX postou um tópico em Microsoft Office e similares
Bom dia pessoal! Conheço quase nada em VBA e queria que esse código abaixo buscasse toda a coluna A ou um intervalo A1:A100 ao invés de somente a célula A1. Private Sub Worksheet_Calculate() If Range("A1").Value <> PrevVal Then MsgBox "Algo mudou!" PrevVal = Range("A1").Value End If End Sub Quando eu uso ("A"), ("A1:A100") ou ("$A$") ele manda pro depurador. Retirei desse site: https://www.funcaoexcel.com.br/macro-que-roda-automaticamente/ -
Excel Rodar macro quando o conteúdo da célula é alterado via fórmula ou manualmente
DigusX postou um tópico em Microsoft Office e similares
Bom dia! Estou com esse macro que roda automaticamente, porém ele só está enviando e-mail quando eu edito qualquer célula da coluna M manualmente, mas preciso que ele envie quando qualquer célula da coluna M mudar via fórmula. Private Sub Worksheet_Change(ByVal Target As Range) 'Envia e-mail pelo Outlook Dim OutApp As Object Dim OutMail As Object Dim texto As String Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) linha = ActiveCell.Row - 1 If Target.Address = "$M$" & linha Then If Planilha10.Cells(linha, 13) = "Sim" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "O item: " & Planilha10.Cells(linha, 3) & " necessita de reparo" & "." & vbCrLf & vbCrLf & _ End If If Planilha10.Cells(linha, 13) = "Não" Then texto = "Prezado(a), " & vbCrLf & vbCrLf & _ "Foi reparado o item: " & Planilha10.Cells(linha, 3) & vbCrLf & vbCrLf & _ End If With OutMail .To = "e-mail para quem deseja enviar" .CC = "" .BCC = "" .Subject = "Título do e-mail" .Body = texto .Display 'Utilize Send para enviar o email sem abrir o Outlook End With 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