none
Atribuindo VBA CommandButton1_Click RRS feed

  • Pergunta

  • Boa tarde Prezados,

    Estou mudando minha VBA de um evento_change para u commandbutton1_click,

    e ao mudar ela para de funcionar,

    é um VBA que devera ler uma informação em uma coluna e de acordo com a informação irá enviar email

    segue o VBA

    Sub MACRO1_ENVIAR_EMAILS()
    
    
        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
       
    
    'Atrasado
            If Plan1.Cells(linha, 9) = "Atrasado" Then
                texto = "Prezado(a) " & Plan1.Cells(linha, 6) & "," & vbCrLf & vbCrLf & _
                        "O status da sua tarefa " & Plan1.Cells(linha, 2) & vbCrLf & _
                        "foi alterado para atrasado." & vbCrLf & _
                        "Favor, assim que finalizar sua tarefa, responder com o documento comprobatorio para atualização do seus stats" & vbCrLf & _
                        vbCrLf & _
                        vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Dpto Tributario"
                        
            With OutMail
                .To = Plan1.Cells(linha, 6)
                .CC = Plan1.Cells(linha, 7)
                .BCC = ""
                .Subject = "ATUALIZAÇÃO STATUS TAREFA - " & Plan1.Cells(linha, 2)
                .Body = texto
                .display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            MsgBox "E-Mail(s) enviado(s) com sucesso!"
         
                        
        
    'faltam 3 dias
            ElseIf Plan1.Cells(linha, 9) = "Atenção 3" Then
                texto = "Prezado(a) " & Plan1.Cells(linha, 6) & "," & vbCrLf & vbCrLf & _
                        "O status da sua tarefa " & Plan1.Cells(linha, 2) & vbCrLf & _
                        "foi alterado para Atenção." & vbCrLf & _
                        "Faltam 3 dias para você finalizar esta tarefa" & vbCrLf & _
                        vbCrLf & _
                        vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Dpto Tributario"
            With OutMail
                .To = Plan1.Cells(linha, 6)
                .CC = Plan1.Cells(linha, 7)
                .BCC = ""
                .Subject = "ATUALIZAÇÃO STATUS TAREFA - " & Plan1.Cells(linha, 2)
                .Body = texto
                .display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            
            MsgBox "E-Mail(s) enviado(s) com sucesso!"
    
    
    'falta 1 dia
            ElseIf Plan1.Cells(linha, 9) = "Atenção 1" Then
                texto = "Prezado(a) " & Plan1.Cells(linha, 6) & "," & vbCrLf & vbCrLf & _
                        "O status da sua tarefa " & Plan1.Cells(linha, 2) & vbCrLf & _
                        "foi alterado para Atenção." & vbCrLf & _
                        "Falta 1 dias para você finalizar esta tarefa" & vbCrLf & _
                        vbCrLf & _
                        vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Dpto Tributario"
            With OutMail
                .To = Plan1.Cells(linha, 6)
                .CC = Plan1.Cells(linha, 7)
                .BCC = ""
                .Subject = "ATUALIZAÇÃO STATUS TAREFA - " & Plan1.Cells(linha, 2)
                .Body = texto
                .display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            
            MsgBox "E-Mail(s) enviado(s) com sucesso!"
    
    
    'prazo encerra hoje
            ElseIf Plan1.Cells(linha, 9) = "Atenção" Then
                texto = "Prezado(a) " & Plan1.Cells(linha, 6) & "," & vbCrLf & vbCrLf & _
                        "O status da sua tarefa " & Plan1.Cells(linha, 2) & vbCrLf & _
                        "foi alterado para Atenção." & vbCrLf & _
                        "Hoje encerra seu prazo para finalizar esta tarefa" & vbCrLf & _
                        vbCrLf & _
                        vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Dpto Tributario"
                        
            With OutMail
                .To = Plan1.Cells(linha, 6)
                .CC = Plan1.Cells(linha, 7)
                .BCC = ""
                .Subject = "ATUALIZAÇÃO STATUS TAREFA - " & Plan1.Cells(linha, 2)
                .Body = texto
                .display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            
            MsgBox "E-Mail(s) enviado(s) com sucesso!"
            
    'Atrasado 1 dia
            ElseIf Plan1.Cells(linha, 9) = "Atenção1" Then
                texto = "Prezado(a) " & Plan1.Cells(linha, 6) & "," & vbCrLf & vbCrLf & _
                        "O status da sua tarefa " & Plan1.Cells(linha, 2) & vbCrLf & _
                        "Sua tarefa está atrasada." & vbCrLf & _
                        "Finalize sua tarefa" & vbCrLf & _
                        vbCrLf & _
                        vbCrLf & _
                        "Atenciosamente," & vbCrLf & _
                        "Dpto Tributario"
                        
            With OutMail
                .To = Plan1.Cells(linha, 6)
                .CC = Plan1.Cells(linha, 7)
                .BCC = ""
                .Subject = "ATUALIZAÇÃO STATUS TAREFA - " & Plan1.Cells(linha, 2)
                .Body = texto
                .display   'Utilize Send para enviar o email sem abrir o Outlook
            End With
            
            MsgBox "E-Mail(s) enviado(s) com sucesso!"
            
                
                        
            End If
                        
    
            On Error GoTo 0
    
            Set OutMail = Nothing
            Set OutApp = Nothing
        
        
        
    End Sub
    
    Private Sub CommandButton1_Click()
    
    Call MACRO1_ENVIAR_EMAILS
    
    End Sub
    

    segunda-feira, 28 de setembro de 2015 17:26

Respostas

Todas as Respostas

  • Aparece alguma mensagem de erro ?

    Em qual linha ?

    O nome do botão é mesmo 'CommandButton1' ?

    A instrução call não é necessária, visto que MACRO1_ENVIAR_EMAILS é um procedimento, e não uma função

    Foi o que vi de momento.

    segunda-feira, 28 de setembro de 2015 18:44
  • Sim, este é o nome do botão 'CommandButton1'

    Ao clicar no botão ele esta acionando o VBA. porem, as funções IF não estão funcionando, se as colunas tem o valor descrito na função ele nao le o restante.

    e estava observando também que o VBA só esta aplicano para a primeira linha e nao esta aplicando para as demais

    segunda-feira, 28 de setembro de 2015 18:51
  • O elseif funciona assim mesmo. Vc deve fechar o teste com end if e abrir outros ifs para os outros testes. Com elseif, se uma das condições for satisfeita, ele sai..
    quarta-feira, 30 de setembro de 2015 03:15