Esse macro do Aplicativo Microsoft Excel VBA(Visual Basic Application) envia um email com anexo de determinada planilha(desejada),
para vários emails contendo no corpo da folha planilha o range especificado para envio.
Baixe o exemplo de planiha no final da página. fiquem com Deus, Expedito Marcondes
Sub sbx_envia_anexo_email_planilha_desejada()
Dim vNovoArquivo As Workbook
Dim vPlanAtiva As Worksheet
Dim vNovaPlanilha As Integer
Dim sbEnviarPlanilha As String
Dim txArquivoExiste As String
Dim sbExcluirArqTemporario As String
Dim vDestino, vTitulo As String
Dim vLinCol, i As Long
Dim txArquivoNumero As Long'- - - - - - - - - - - - - - - - - - -
''salva o arquivo como (Excel 2010)
'txArquivoExiste = ".xlsb": txArquivoNumero = 50
'txArquivoExiste = ".xlsx": txArquivoNumero = 51
'txArquivoExiste = ".xlsm": txArquivoNumero = 52
'- - - - - - - - - - - - - - - - - - -
'vamos utilizar o formato (51) (xlsx)
txArquivoExiste = ".xlsx": txArquivoNumero = 51
'Instrução exibe o número de planilhas automaticamente inseridas em novas pastas de trabalho
vNovaPlanilha = Application.SheetsInNewWorkbook
'aqui definimos somente a planiha na ordem para nosso arquivo desejado
Application.SheetsInNewWorkbook = 1
With Sheets("Meus_Contatos")
vLinCol = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To vLinCol
vDestino = .Cells(i, 1).Value
vTitulo = .Cells(i, 2).Value
'vamos definir a planilha que se tonará ativa
Set vPlanAtiva = Sheets("Pagamento_Janeiro_2014")
On Error Resume Next
'Sheets(CStr(vPlanAtiva)).Select
'usamos a instrução set para variavel para expandir para mais tres colunas
'vamos copiar somente os dados filtrados como (setamos) acima
Plan2.Range("A1:H8").Copy
'Aqui vamos definir a folha de planiha do livro que enviaremos anexo em nosso email,
'observem que poderá ser qualquer folha de planilha
sbEnviarPlanilha = "Pagamento_Janeiro_2014"
Plan2.Select
'vamos adicionar ou criar um novo arquivos(wkb) no aplicativo excel
Set vNovoArquivo = Application.Workbooks.Add
'vamos fazer uma cola especial e colar somente os valores em nossa planilha ativa que será formatada.
With ActiveSheet
.Range("A1").Value = "Agora - ( " & Date & " Dia de pagamento contas....)"
.Range("A4").PasteSpecial Paste:=xlPasteValues
.Range("A4").PasteSpecial Paste:=xlPasteFormats
.Range("A:I").Columns.AutoFit
End With
Application.CutCopyMode = False
'vamos definir o nome da folha de planilha para a folha de planilha copiada
With ActiveSheet
.Name = sbEnviarPlanilha
.Range("A1").Select
End With
'essa linha de código enibe a mensagem do aplicativo excel
Application.DisplayAlerts = False
'vamos salvar nosso arquivo com o nome da folha de planilha que foi copiada no formato 2010 - xlsx (51)
vNovoArquivo.SaveAs Filename:=ThisWorkbook.Path & "\" & "" & sbEnviarPlanilha & txArquivoExiste, FileFormat:=txArquivoNumero
sbExcluirArqTemporario = vNovoArquivo.FullName
'vamos enviar nosso arquivo para o email desejado
vNovoArquivo.SendMail vDestino, vTitulo
'Fechando o arquivo novo, observe que usei aqui Close e não Quit(Fecha todo Aplicativo)
vNovoArquivo.Close
'Instrução Kill deletará nosso arquivo temporariamente criado para o envio do email.
Kill sbExcluirArqTemporario
Next i
End With
'Instrução exibe o número de planilhas automaticamente inseridas em novas pastas de trabalho
Application.SheetsInNewWorkbook = vNovaPlanilhaEnd Sub' - - - - - - - - -
'deseja entrar em contato equipe saberexcel
'esse macro abre a página de contato do site SaberExcel.
Sub contato_equipe_saberexcel()
Dim Resposta As String
Resposta = MsgBox("deseja entrar em contato equipe saberexcel atraves do site?", vbYesNo + vbQuestion, "Saberexcel - site das macros")
If Resposta = vbYes Then
Application.DisplayAlerts = False
ThisWorkbook.FollowHyperlink "http://www.microsoftexcel.com.br/index.php/contato-duvidas-excel.html", , True
End If
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções.
Baixe o exemplo de planilha contendo o macro acima:
Excel planilha vba envia plan anexo (33 KB)
Comentários
Parabéns pelo exemplo.
Estamos olhando esse exemplo e ví que poderia nos ser mais útil se enviasse um email de acordo com a data de Aviso(Alerta) para o pagamento de determinados títulos.
Estamos muito interessado e gostariamos que desenvolvesse uma planiha dessas para nós que alem de enviar trouxesse os dados no corpo do email. Passe-nos o valor do trabalho,
Aguardamos, Obrigado,
Jair Oliveira (FE)
Planilha desenvolvida - ficou excelente, muito bom mesmo.
esta funcionando como queriamos. Jair Oliveira(FE)
Prezado Jair, obrigado pelo contato e também por ter contratados nossos serviços para desenvolver a planilha que envia email para vários
emails ou email desejado, com os dados da linha correpondente no corpo do email no dia do alerta (aviso) vencimento para determinado email.
usei o criterio data para desenvolver a planilha do Sr. Jair (FE).
obrigado.
Expedito Marcondes.
Cada arquivo, contém 18 planilhas, logo, 18 anexos diferentes.
Agradeço desde já. Abraço.
Não consigo baixar a planilha de exemplo não há o link.
Um abraço,
Rodrigo
'- - - - - - - - -
Rodrigo, Já disponibizei a planilha, desculpe-me a falha.
Fique com Deus,
Marcondes.
Assine o RSS dos comentários