Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 enviar e-mail no Excel dos itens selecionados

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Luciano Petrucci



Mensagens : 2
Data de inscrição : 02/10/2015

MensagemAssunto: enviar e-mail no Excel dos itens selecionados   Sex Out 02, 2015 5:15 pm

Bom dia a todos,

Estou precisando de uma ajuda e sei que vocês são especialista em excel e vão poder me ajudar. Eu tenho uma planilha de controle de projetos que desenvolvi no excel, esta planilha já existe algumas programações em VBA, como pesquisa, envio de e-mail, cálculos de dias na semana tirando os feriados do ano, entre outras. Porém, estou com um novo desafio em relação a enviar e-mails pelo excel. Hoje está função na minha planilha faz uma busca en toda a planilha identificando alguns campos chaves com um tipo de status (exemplo: Status=Pendente de aprovação), quando a função encontra este status na planilha, me notifica em uma caixa de mensagem (YES/NO) e se eu quiser enviar o e-mail eu clico em SIM e o e-mail é enviado e a função segue executando até achar na planilha outro registro que se encaixe no critério. Então, esse tipo de código funcionou bem até a planilhar ter mais de 600 entradas, então, eu gostaria da ajuda de vocês para tentar melhorar este código, o que eu preciso:

1 - Criar uma consulta(filtro) através de alguns campos da planilha (FEITO)
2 - Nesta consulta realizada, eu gostaria de marcar os itens que quero enviar e-mail
3 - Enviar e-mail apenas dos itens selecionados.

Desde já agradeço a ajuda de vocês.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: enviar e-mail no Excel dos itens selecionados   Sex Out 02, 2015 5:32 pm

Bom dia!!

Para que alguém possa lhe ajudar, no mínimo, você deveria postar seu arquivo modelo!

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Luciano Petrucci



Mensagens : 2
Data de inscrição : 02/10/2015

MensagemAssunto: Re: enviar e-mail no Excel dos itens selecionados   Qui Nov 05, 2015 6:25 pm

Boa tarde!!!

Segue o código de envio de e-mail que tenho hoje. O que eu preciso é que ele me liste os dados da planilha identificado pelos critérios (if...then, do código abaixo) e envie os e-mails apenas para estes itens identificados. Porém, o que acontece é que ele exibe quantos e-mails eu tenho para enviar através do critério (If...Then, indicada no código) , mas quando vai enviar os e-mails, ele não preserva este critério e envia e-mail para todas as linhas da planilha e não apenas para as linhas que foram identificadas pelo critério (If...Then do código).

Código

Sub FUP()
   Dim Maildb As Object
   Dim MailDoc As Object
   Dim Body As Object
   Dim Session As Object
   Dim texto As String
   Dim rcpt As String
   Dim rcptcc As String
   Dim subj As String
   Dim FUPE As Date
   Dim tipo1 As String
   Dim Msg, Style, Title, Help, Ctxt, Response, MyString
 
   Style = vbYesNo + vbCritical + vbDefaultButton2    ' Define buttons.
   Title = "Aviso"    ' Define title.
   Help = "DEMO.HLP"    ' Define Help file.
   Ctxt = 1000    ' Define topic
       

 FUPE = Date
 'linha = ActiveCell.Row - 1
 linha = 8
 Conta1 = 0
 
 Do While Sheets(2).Cells(linha, 1) <> ""
    If Sheets(2).Cells(linha, 5).Value = "Tarea" And Sheets(2).Cells(linha, 14).Value = "Em andamento" Or Sheets(2).Cells(linha, 14).Value = "A iniciar" Then
       If Sheets(2).Cells(linha, 22).Value = FUPE Or Sheets(2).Cells(linha, 23).Value = FUPE Or Sheets(2).Cells(linha, 24).Value = FUPE Then
           texto = "Buenas, " & vbCrLf & vbCrLf & _
             "La tarea descripta abajo está pendiente de termino, " & _
             "por favor, finalizar la tarea antes de la fecha fin designada en SGP y enviar las evidencias para el TM del proyecto." & vbCrLf & vbCrLf & _
             " Informaciones de la tarea:" & vbCrLf & vbCrLf & _
             "    Tarea: " & Sheets(2).Cells(linha, 4) & vbCrLf & _
             "    Descrición: " & Sheets(2).Cells(linha, 7) & vbCrLf & vbCrLf & vbCrLf & _
             "    -------------------------------------------------------" & vbCrLf & _
             "    Ejecutor: " & Sheets(2).Cells(linha, 18) & vbCrLf & _
             "    Fecha inicio: " & Sheets(2).Cells(linha, 11) & vbCrLf & _
             "    Fecha fin: " & Sheets(2).Cells(linha, 12) & vbCrLf & _
             "    Atraso(dia): " & Sheets(2).Cells(linha, 13) & vbCrLf & vbCrLf & vbCrLf & _
             "Muchas gracias" & vbCrLf & _
             "Saludos" & vbCrLf & _
             "-----------------------------------" & vbCrLf & _
             "Luciano Petrucci"
             
 
             Conta1 = Conta1 + 1
     End If
    End If
     linha = linha + 1
     tipo1 = Sheets(2).Cells(linha, 5)
           
     Msg = Date & " :: Você possuí: " & vbCrLf & _
          Conta1 & " alertas de tarefa Em andamento e/ou a iniciar, deseja enviar"
   Loop
   
   
  'Define message.
   Response = MsgBox(Msg, Style, Title, Help, Ctxt)
       
   If Response = vbYes Then
     
      'Conta1 = Conta1 + 1
     'Start a session of Lotus Notes
      Set Session = CreateObject("Lotus.NotesSession")
   
     'This line prompts for password of current ID noted in Notes.INI
     'or use below to provide password of the current ID (to avoid Password prompt)
     'Call Session.Initialize("<password>")
     'Exemplo: Call Session.Initialize("123456")
     Call Session.Initialize("123456")
     
     'Open the Mail Database of your Lotus Notes
     'Exemplo: Set Maildb = Session.GetDatabase("", "C:\Notes\data\Mail7\lucipe.nsf")
       Set Maildb = Session.GetDatabase("", "C:\Notes\data\Mail7\lucipe.nsf")
       If Not Maildb.IsOpen = True Then Call Maildb.Open
   
     'Create the Mail Document
      Set MailDoc = Maildb.CreateDocument
      Call MailDoc.REPLACEITEMVALUE("Form", "Memo")
   
     'Set the Recipient of the mail
      rcpt = Sheets(2).Cells(linha, 19)
      rcptcc = Sheets(2).Cells(linha, 21)
      Call MailDoc.REPLACEITEMVALUE("SendTo", rcpt)
      Call MailDoc.REPLACEITEMVALUE("CopyTo", rcptcc)
     
   
     'Set subject of the mail
      subj = Sheets(2).Cells(linha, 2)
      subj2 = Sheets(2).Cells(linha, 3)
      subj3 = Sheets(2).Cells(linha, 4)
      Call MailDoc.REPLACEITEMVALUE("Subject", "[" & subj & " :: " & subj2 & "] " & subj3 & " - " & "Para su acción :: Tarea pendiente")
   
     'Create and set the Body content of the mail
      Set Body = MailDoc.CreateRichTextItem("Body")
      Call Body.AppendText(texto)
   
      'Example to create an attachment (optional)
      'If Sheets(1).Cells(linha, 14) <> "" And Sheets(1).Cells(linha, 13) <> "" Then
       ' Call Body.AddNewLine(2)
       ' Call Body.EmbedObject(1454, "", Sheets(1).Cells(linha, 14) & Sheets(1).Cells(linha, 13), "Attachment")
      'End If
     
      'If Sheets(1).Cells(linha, 15) <> "" And Sheets(1).Cells(linha, 16) <> "" Then
      '  Call Body.AddNewLine(4)
      '  Call Body.EmbedObject(1454, "", Sheets(1).Cells(linha, 16) & Sheets(1).Cells(linha, 15), "Attachment")
      'End If
      'Example to save the message (optional) in Sent items
       MailDoc.SaveMessageOnSend = True
   
      'Send the document
      'Gets the mail to appear in the Sent items folder
       Call MailDoc.REPLACEITEMVALUE("PostedDate", Now())
       Call MailDoc.Send(False)
      'Clean Up the Object variables - Recover memory
       Set Maildb = Nothing
       Set MailDoc = Nothing
       Set Body = Nothing
       Set Session = Nothing
 
  Else
   
 End If
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: enviar e-mail no Excel dos itens selecionados   Hoje à(s) 10:56 am

Voltar ao Topo Ir em baixo
 
enviar e-mail no Excel dos itens selecionados
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Como enviar e-mail de confirmação da ativção de novo membro
» enviar-e-mail-aos-usuarios-quando-um-novo-topico-for-criado
» Não consigo enviar e-mail em massa
» Enviar e-mail pelo access
» Enviar e-mail access pelo outlook 2010

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: