Ir ao conteúdo

Posts recomendados

Postado
Em 30/01/2020 às 19:58, osvaldomp disse:

Com base no que comentei no post #12, segue uma ideia para testes no arquivo anexado.

ExemploTrocadeÓleo - Fórum V2.zip 27 kB · 24 downloads

Finalmente, nessa planilha anexada está rodando tranquilo, porém quando vou colocar na minha planilha oficial aparece: 

Erro em tempo de execução '1004':

O método AutoFilter da classe Range falhou

 

.[B1:X1].AutoFilter 23, "FALSO"

  • 10 meses depois...
Postado

Boa noite, pessoal! Tudo bem com vocês?

 

Eu estou com um problema praticamente igual, porém eu não consegui aplicar o que foi feito nos posts acima no meu caso... vocês me ajudam?

 

Eu tenho uma planilha com uma coluna com datas (as datas ficam na coluna E) e uma coluna escrito "Deadline" (coluna F) . Quando a data for igual a data de hoje, existe uma função que vai escrever "Hoje" na coluna do deadline, e ela deveria mandar um email informando algumas determinadas pessoas. Porém essa macro só está funcionando se eu clicar em cima da linha e digitar "Hoje" manualmente. Ela não está mandando o e-mail pela fórmula.

 

Meu código é esse:

 

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 = ActiveCell.Row - 1
    
    If Target.Address = "$F$" & linha Then

        If Planilha1.Cells(linha, 6) = "Hoje" Then
        texto = "Prezado Time de CS, " & vbCrLf & vbCrLf & _
        "O Projeto " & Planilha1.Cells(linha, 3) & " está com o dedline para Hoje " & vbCrLf & _
        "Veja informações abaixo:" & vbCrLf & _
        "Deadline: " & Planilha1.Cells(linha, 6) & vbCrLf & _
        "Fase do Projeto: Design Review" & vbCrLf & vbCrLf & _
        "Atenciosamente," & vbCrLf & _
        "Equipe CS"
   
    End If
    
    With OutMail
        .To = "meu email"
        .CC = ""
        .BCC = ""
        .Subject = "Informação!"
        .Body = texto
        .Display 
    End With
    On Error GoTo 0
    
    Set OutMail = Nothing
    Set OutApp = Nothing
    
    
    End If

End Sub

 

Alguém me ajuda? Não sei mais o que fazer... Segue anexo a planilha também.

 

Muito obrigado!

 

Projetos em andamento - Copia.xlsx

Postado

@MarceloAKniss Bom dia! Tente o código abaixo. Ao se usar o evento Worksheet_Change, é importante atentar que Active_cell nem sempre (quase nunca) é a célula que você quer que dispare o evento. Para isso, utilize Target, que sempre é a célula cujo valor mudou e portanto disparará o evento:

 

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)
    
    If (Target.Column = 6) And (Target.Row > 1) And (Target.Row < 40) Then 'Coloquei o intervalo F2:F39 para a macro rodar. Edite essa linha de código para atender às suas necessidades.

        If Target.Value = "Hoje" Then
            texto = "Prezado Time de CS, " & vbCrLf & vbCrLf & _
            "O Projeto " & Planilha1.Cells(Target.Row, 3) & " está com o dedline para Hoje " & vbCrLf & _
            "Veja informações abaixo:" & vbCrLf & _
            "Deadline: " & Planilha1.Cells(Target.Row, 6) & vbCrLf & _
            "Fase do Projeto: Design Review" & vbCrLf & vbCrLf & _
            "Atenciosamente," & vbCrLf & _
            "Equipe CS"
   
        End If
    
        With OutMail
            .To = "meu email"
            .CC = ""
            .BCC = ""
            .Subject = "Informação!"
            .Body = texto
            .Display
        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
    
    
    End If

End Sub

 

  • Amei 1
Postado

@Charley Rocha Muito obrigado!!! Funcionou! 

 

Só uma dúvida: Se eu quisesse que essa macro fosse executada quando eu desse um ENTER em cima da célula com a data "Hoje", seria possível fazer isso? Só por que já estou pensando em uma outra coisa futuramente para fazer.

 

Novamente, muito obrigado!

Postado
5 minutos atrás, MarceloAKniss disse:

@Charley Rocha Muito obrigado!!! Funcionou! 

 

Só uma dúvida: Se eu quisesse que essa macro fosse executada quando eu desse um ENTER em cima da célula com a data "Hoje", seria possível fazer isso? Só por que já estou pensando em uma outra coisa futuramente para fazer.

 

Novamente, muito obrigado!

 

Amigo, virtualmente qualquer coisa que você quiser é possível, resta saber se é uma escolha boa a se fazer. A maneira como você pensou essa macro (do jeito que está agora) é muito utilizada e bem prática. Essa outra que você quer é meio... estranha, por assim dizer. É provável que você acabe ativando a macro por engano diversas vezes, dentre outros problemas.

 

Eu sugeriria um botão em algum lugar da planilha pra executar a macro baseada na célula selecionada. Mas isso sem saber absolutamente nada da sua real necessidade.

  • Obrigado 1

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!