Usuário com melhor resposta
Atribuindo VBA CommandButton1_Click

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
Respostas
-
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..
- Sugerido como Resposta André Santo quarta-feira, 30 de setembro de 2015 03:15
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 14:24
Todas as Respostas
-
-
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
-
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..
- Sugerido como Resposta André Santo quarta-feira, 30 de setembro de 2015 03:15
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 14:24