desculpe, sei que vao rir, mas fiz aqui um salseiro nesta outra Macro. Alguem pode me ajudar?
Na verdade quero escolher a conta que sera usado o envio do email, mas esta parando nesta linha:
.SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
Sub A5_Pedido_Leader()
Dim NovoArquivoXLS As Workbook
Dim sPlanAEnviar As String
Dim sExcluirAnexoTemporario As String
Dim OlMensagem As Outlook.MailItem
Dim OlApp As Outlook.Application
Dim contaEmail As String
Dim idEmail As Integer
Worksheets("(P) " & Range("J6")).Unprotect "861485"
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.Delete
Worksheets("(P) " & Range("J6")).Protect "861485"
'Define a Planilha que será enviada por Email. Ex: Plan1, Plan2, Pedidos, etc
sPlanAEnviar = "(P) " & Range("J6") '(P) " & [J6]
'Cria um novo arquivo Excel
Set NovoArquivoXLS = Application.Workbooks.Add
'Copia a Planilha para o novo arquivo criado
ThisWorkbook.Sheets(sPlanAEnviar).Copy Before:=NovoArquivoXLS.Sheets(1)
'Salva o Arquivo
NovoArquivoXLS.SaveAs ThisWorkbook.Path & "" & sPlanAEnviar & ".xLs"
sExcluirAnexoTemporario = NovoArquivoXLS.FullName
contaEmail = ThisWorkbook.Sheets("(P) Marinho Nutrition").Range("AI23").Value
Set OlApp = CreateObject("Outlook.Application")
Set OlMensagem = OlApp.CreateItem(0)
'Este laço verifica se o nome da conta w no registro do windows é igual ao valor da célula
For w = 1 To OlApp.Session.Accounts.Count
If OlApp.Session.Accounts.Item(w).DisplayName = contaEmail Then 'Se for verdadeiro, solicita confirmação
If MsgBox("O E-mail será enviado usando a conta " & contaEmail & ". Confirma ?" & " ( Estado - " & Estado & " )", vbQuestion + vbYesNo, "Envio de e-mail") = vbYes Then
idEmail = w 'Define o id da conta para o comando enviar
Exit For 'Sai do laço
Else
Sheets(Estado).Visible = False
Sheets(Loja).Select
GoTo Fim 'Senão sai da rotina
End If
End If
Next
With OlMensagem
' .SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
'Envia o email
NovoArquivoXLS.SendMail "amigolojista@gmail.com", "Pedido " & [AJ1] & " - " & "(P)" & Range("J6")
Set OlApp = Nothing
'Fecha o Arquivo Novo
NovoArquivoXLS.Close
'Exclui o arquivo criado apenas para ser enviado
Kill sExcluirAnexoTemporario
Worksheets("(P) " & Range("J6")).Protect "861485"
With ActiveWorkbook.Sheets("(P) " & Range("J6")).Tab
.Color = 65535
.TintAndShade = 0
End With
'-----------------------------------------------------------------------------
Dim nome
nome = ("(P) " & Range("J6"))
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim Dest As Range
Sheets("LANCAR COMISSAO LEADER").Visible = True
Sheets("COMISSAO LEADER").Visible = True
Sheets("LANCAR COMISSAO LEADER").Select
Sheets(nome).Select
' Sheets("RESUMO").Visible = True
'---------------------------------------------------------------------------
' 4- Salva a comissao em "LANCAR COMISSAO
Range("J6").Select
Set Ws2 = Sheets("LANCAR COMISSAO LEADER") 'Referencia a guia LANÇAR COMISSAO como Ws2
Set Dest = Ws2.Range("B3").Range("B103").End(xlUp).Offset(1, -1) 'Encontra a ultima linha da guia comissão (definida como Dest)
Range("AP2:AW2").Copy 'Copia o intervalo AI6:AQ6 da guia Resumo
Dest.PasteSpecial xlPasteValues 'Cola valores na guia Comissão
Application.CutCopyMode = False 'Desativaj o clipboard
Set Ws1 = Sheets(nome)
'MsgBox Ws1.Name
Ws1.Select
'---------------------------------------------------------------------------
' 5- Salva a comissao em "COMISSAO" e "VENDAS"
Range("J6").Select
Set Ws2 = Sheets("COMISSAO LEADER") 'Referencia a guia LANÇAR COMISSAO como Ws2
Set Dest = Ws2.Range("B3").Range("B1000").End(xlUp).Offset(1, -1) 'Encontra a ultima linha da guia comissão (definida como Dest)
Range("AP2:AW2").Copy 'Copia o intervalo
Dest.PasteSpecial xlPasteValues 'Cola valores na guia Comissão
Application.CutCopyMode = False 'Desativaj o clipboard
Sheets("LANCAR COMISSAO LEADER").Visible = False
Sheets("COMISSAO LEADER").Visible = False
GoTo Fim
End With
Exit Sub
Fim:
End Sub
Postado : 22/03/2016 4:34 pm