Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Enviar range no corpo do email como imagem [RESOLVIDO]
- Fabio Trindade
- Manda bem
- Mensagens: 161
- Registrado em: Dom Abr 24, 2011 4:07 pm
Enviar range no corpo do email como imagem [RESOLVIDO]
Boa tarde, Srs.
Procurei alguns exemplos de como selecionar algumas uma range e mandar no corpo do e-mail como imagem, mas não encontrei algo que chegasse perto da minha duvida, encontrei em outro fórum como exportar a range como imagem, mas não atende como solução pra meu caso.
Gostaria de saber dos senhores, se poderiam me orientar de como realizar tal fato, ou indicar lugares que eu possa ver algum código parecido para adaptar.
Desde já, agradeço ... Toda e qualquer ajuda sempre é bem vinda
Procurei alguns exemplos de como selecionar algumas uma range e mandar no corpo do e-mail como imagem, mas não encontrei algo que chegasse perto da minha duvida, encontrei em outro fórum como exportar a range como imagem, mas não atende como solução pra meu caso.
Gostaria de saber dos senhores, se poderiam me orientar de como realizar tal fato, ou indicar lugares que eu possa ver algum código parecido para adaptar.
Desde já, agradeço ... Toda e qualquer ajuda sempre é bem vinda
Editado pela última vez por Fabio Trindade em Qui Set 11, 2014 6:09 pm, em um total de 1 vez.
- Fabio Trindade
- Manda bem
- Mensagens: 161
- Registrado em: Dom Abr 24, 2011 4:07 pm
Re: Enviar range no corpo do email como imagem
Bom dia, Srs.Fabio Trindade escreveu:Boa tarde, Srs.
Procurei alguns exemplos de como selecionar algumas uma range e mandar no corpo do e-mail como imagem, mas não encontrei algo que chegasse perto da minha duvida, encontrei em outro fórum como exportar a range como imagem, mas não atende como solução pra meu caso.
Gostaria de saber dos senhores, se poderiam me orientar de como realizar tal fato, ou indicar lugares que eu possa ver algum código parecido para adaptar.
Desde já, agradeço ... Toda e qualquer ajuda sempre é bem vinda
procurei algum código que atende-se minha necessidade o que consegui encontrar é um que faz um print da tela toda e insere no corpo do e-mail e como anexo também.
Porém não sei como manipular o mesmo para fazer o print só das células que preciso, gostaria da ajuda dos senhores para tentar montar alguma coisa parecida.
Segue o código que encontrei:
Créditos : http://answers.microsoft.com/pt-br/offi ... bb7f089aca
Código: Selecionar todos
Sub Email()
Dim cob As Excel.ChartObject
Dim wks As Excel.Worksheet
Dim shp As Excel.Shape
Dim cht As Excel.Chart
Dim objOutlook As Object 'Outlook.Application
Dim objMailItem As Object 'Outlook.MailItem
Dim strImagePath As String
strImagePath = Environ("Save") & "f:\Users\fabio.trindade\Desktop\Print\print.png" 'Local onde vai ser salvo
'Application.Range("A1:O15")
Application.SendKeys "(%{1068})" ' Comando que executa o AltPrintScreen
DoEvents
Application.Wait Now + TimeSerial(0, 0, 1)
Application.ScreenUpdating = False
Set wks = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
wks.Paste
Set shp = wks.Shapes(1)
Set cht = wks.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
cht.Paste
cht.Export strImagePath, "png"
wks.Parent.Close savechanges:=False
Application.ScreenUpdating = True
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ""
.cc = ""
.BCC = ""
.Subject = "Titulo"
.Attachments.Add "f:\Users\fabio.trindade\Desktop\Print\print.png"
.HTMLBody = "Mensagem" & "<BR><BR>" & _
"<img src='f:\Users\fabio.trindade\Desktop\Print\print.png'>" 'Caminho que se encontra a imagem a ser colada no corpo do e-mail.
'.Send 'or use
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
- Rafael Monteiro
- Consultor
- Mensagens: 277
- Registrado em: Seg Nov 28, 2011 8:27 am
- Localização: Sorocaba - SP
- Contato:
Re: Enviar range no corpo do email como imagem
Fabio,
Se você tentar integrar um código que imprimi apenas a células selecionadas, talvez de certo.
Só uma idéia, talvez ajude.
Abs.
Se você tentar integrar um código que imprimi apenas a células selecionadas, talvez de certo.
Código: Selecionar todos
Range("A1: C4").Select
Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Abs.
- Fabio Trindade
- Manda bem
- Mensagens: 161
- Registrado em: Dom Abr 24, 2011 4:07 pm
Re: Enviar range no corpo do email como imagem
Bom dia, Rafael Monteiro.Rafael Monteiro escreveu:Fabio,
Se você tentar integrar um código que imprimi apenas a células selecionadas, talvez de certo.Só uma idéia, talvez ajude.Código: Selecionar todos
Range("A1: C4").Select Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Abs.
Obrigado pela dica.
- Fabio Trindade
- Manda bem
- Mensagens: 161
- Registrado em: Dom Abr 24, 2011 4:07 pm
Re: Enviar range no corpo do email como imagem [RESOLVIDO]
Bom dia, Srs.
Depois de pesquisar um pouco e destruir alguns arquivos consegui fazer uma POG (Programação Orientada a Gambiarra), que atende-se minha necessidade.
Encontrei um código aqui no fórum que exporta como imagem uma parte selecionada da planilha ativa, fiz com que essa imagem seja salva na pasta %temp% e depois recupero dentro do outlook como imagem no corpo do meio, após enviado, mando um kill no arquivo dentro da pasta %temp% e pronto.
Créditos : viewtopic.php?f=20&t=1156#.VA2w2fldVUX
Depois de pesquisar um pouco e destruir alguns arquivos consegui fazer uma POG (Programação Orientada a Gambiarra), que atende-se minha necessidade.
Encontrei um código aqui no fórum que exporta como imagem uma parte selecionada da planilha ativa, fiz com que essa imagem seja salva na pasta %temp% e depois recupero dentro do outlook como imagem no corpo do meio, após enviado, mando um kill no arquivo dentro da pasta %temp% e pronto.
Créditos : viewtopic.php?f=20&t=1156#.VA2w2fldVUX
Re: Enviar range no corpo do email como imagem [RESOLVIDO]
A imagem vai bem distorcida devido ao tamanho, existe uma forma de "Auto dimensionar" pelo tamanho da seleção?
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Sáb Out 12, 2019 7:44 pm
Re: Enviar range no corpo do email como imagem [RESOLVIDO]
Prezados, boa noite.
tambem estou com uma divida igual preciso printar a tela e inserir no corpo do email tudo em codigo vba
a parte do print foi facil com sendkeys porem inserir a imagem printada no corpo do email em codigo nao consegui ainda
poderiam me ajudar??
segue o codigo que fiz ate o momento:
'*****************************Email************************
Set myolapp = CreateObject("Outlook.Application")
Set myitem = myolapp.CreateItem(olMailItem)
Set ObjNetwork = CreateObject("WScript.Network")
Dim TEXTO
Dim ASSUNTO As String
Workbooks.Application.DisplayAlerts = False
dia = Day(Now)
mes = Month(Now)
ano = Year(Now)
'cumprimentos
If Time() < "12:00:00" Then
Ola = "Bom dia,"
ElseIf Time() < "18:00:00" Then
Ola = "Boa tarde,"
Else
Ola = "Boa noite,"
End If
ASSUNTO = "REMESSA " & Plan1.Range("C7").Value & Space(2) & Plan4.Cells(LINHA, 1).Value
'Segue remessa CALMAG: 114725800
'Ordem de venda: 4934492
'Placa do veículo: HIM-3621
TEXTO = Ola & vbCrLf & vbCrLf & "Segue remessa" & ":" & Space(2) & Plan4.Cells(LINHA, 1).Value & vbCrLf & _
"Ordem de venda" & ":" & Space(2) & Plan1.Range("E7").Value & vbCrLf & _
"Placa do veiculo" & ":" & Space(2) & Plan1.Range("F7").Value
With myitem
.To = Plan2.Range("D2").Value & ";" & _
Plan2.Range("A2").Value & ";" & _
Plan2.Range("A3").Value & ";" & _
Plan2.Range("A4").Value & ";" & _
Plan2.Range("A5").Value & ";" & _
Plan2.Range("A6").Value & ";" & _
Plan2.Range("A7").Value & ";" & _
Plan2.Range("A8").Value & ";" & _
Plan2.Range("A9").Value & ";" & _
Plan2.Range("A10").Value & ";" & _
Plan2.Range("A11").Value & ";" & _
Plan2.Range("A12").Value & ";"
.Subject = ASSUNTO
.Body = TEXTO
.BodyFormat = 1
.Save
.send
End With
Plan4.Protect "UFD"
Plan1.Activate
Plan1.Range("F7").ClearContents
Plan1.Range("G7").ClearContents
MsgBox "Remessa criada e e-mail enviado", vbInformation, "Notificação"
End If
End Sub
tambem estou com uma divida igual preciso printar a tela e inserir no corpo do email tudo em codigo vba
a parte do print foi facil com sendkeys porem inserir a imagem printada no corpo do email em codigo nao consegui ainda
poderiam me ajudar??
segue o codigo que fiz ate o momento:
'*****************************Email************************
Set myolapp = CreateObject("Outlook.Application")
Set myitem = myolapp.CreateItem(olMailItem)
Set ObjNetwork = CreateObject("WScript.Network")
Dim TEXTO
Dim ASSUNTO As String
Workbooks.Application.DisplayAlerts = False
dia = Day(Now)
mes = Month(Now)
ano = Year(Now)
'cumprimentos
If Time() < "12:00:00" Then
Ola = "Bom dia,"
ElseIf Time() < "18:00:00" Then
Ola = "Boa tarde,"
Else
Ola = "Boa noite,"
End If
ASSUNTO = "REMESSA " & Plan1.Range("C7").Value & Space(2) & Plan4.Cells(LINHA, 1).Value
'Segue remessa CALMAG: 114725800
'Ordem de venda: 4934492
'Placa do veículo: HIM-3621
TEXTO = Ola & vbCrLf & vbCrLf & "Segue remessa" & ":" & Space(2) & Plan4.Cells(LINHA, 1).Value & vbCrLf & _
"Ordem de venda" & ":" & Space(2) & Plan1.Range("E7").Value & vbCrLf & _
"Placa do veiculo" & ":" & Space(2) & Plan1.Range("F7").Value
With myitem
.To = Plan2.Range("D2").Value & ";" & _
Plan2.Range("A2").Value & ";" & _
Plan2.Range("A3").Value & ";" & _
Plan2.Range("A4").Value & ";" & _
Plan2.Range("A5").Value & ";" & _
Plan2.Range("A6").Value & ";" & _
Plan2.Range("A7").Value & ";" & _
Plan2.Range("A8").Value & ";" & _
Plan2.Range("A9").Value & ";" & _
Plan2.Range("A10").Value & ";" & _
Plan2.Range("A11").Value & ";" & _
Plan2.Range("A12").Value & ";"
.Subject = ASSUNTO
.Body = TEXTO
.BodyFormat = 1
.Save
.send
End With
Plan4.Protect "UFD"
Plan1.Activate
Plan1.Range("F7").ClearContents
Plan1.Range("G7").ClearContents
MsgBox "Remessa criada e e-mail enviado", vbInformation, "Notificação"
End If
End Sub