Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#51369
Bom dia, meus amigos!

Eu tenho uma planilha em Excel para fazer pedidos para a loja que trabalho.
Eu gostaria de selecionar algumas linhas e colunas e apertar o botão para que aquelas linhas e colunas que eu selecionei, apareça no corpo do e-mail do Outlook. Juntamente com esse conteúdo que estará no corpo do e-mail, eu queria colocar uma mensagem padrão, ficando assim:

Assunto do e-mail: Pedido (ARTONI)

Corpo do e-mail:

Bom dia!

Por favor, coloque o pedido para nós:

--CONTEÚDO DO EXCEL--

Aguardo a cópia do pedido... obrigado!


Estou enviando em anexo o print como tem que ser, para um melhor esclarecimento.

Alguém saberia como seria o código para essa situação?

Obrigado!!!
Você não está autorizado a ver ou baixar esse anexo.
#51380
danilov,

Boa tarde!

Anexo, segue um pequeno exemplo (não é meu e foi pego no site SaberExcel) que faz exatamente isso que você está precisando: Enviar uma parte da planilha no corpo do e-mail.

Estude-o e adapte às suas necessidades.
Você não está autorizado a ver ou baixar esse anexo.
#51382
Experimente:
Código: Selecionar todos
Sub Botão12_Clique()
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 On Error GoTo fnlz
 ActiveSheet.Range("B2:L16").SpecialCells(xlCellTypeVisible).Copy
 Sheets.Add
 With ActiveSheet
  .Paste
  .UsedRange.Select
  .Columns.AutoFit
 End With
 ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
   .Introduction = "Bom dia!" & vbLf & "Blá blá blá"
   .Item.To = "teste@teste.com"
   '.Item.CC = "teste@teste.com.br"
   .Item.Subject = "Pedido X"
   .Item.Send
  End With
 ActiveSheet.Delete
fnlz:
 Application.DisplayAlerts = True
 Application.ScreenUpdating = True
End Sub
obs.
1. altere no código os itens: Introduction, Item.To, Item.CC e Item.Subject
2. antes de rodar o código oculte também a coluna K (que está vazia)
3. no método acima me parece que não é possível adicionar texto abaixo da imagem no corpo da mensagem, para contornar ou inclua o texto no item Introduction ou insira o texto nas células abaixo da tabela a ser enviada e altere no código o novo intervalo a ser enviado.
#51397
Olá meu amigo, bom dia!
O código funcionou legal, mas eu sou obrigado a inserir um e-mail para enviar direto.
Como faço para que ao enviar, abra o e-mail do outlook para que eu possa preencher o e-mail manual no próprio Microsoft Outlook?
No caso, não enviaria automaticamente, só iria criar um novo e-mail e preencher essas informações, aí caso eu queira inserir alguma informação adicional, e o e-mail, faço manual.
osvaldomp escreveu:Experimente:
Código: Selecionar todos
Sub Botão12_Clique()
 Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 On Error GoTo fnlz
 ActiveSheet.Range("B2:L16").SpecialCells(xlCellTypeVisible).Copy
 Sheets.Add
 With ActiveSheet
  .Paste
  .UsedRange.Select
  .Columns.AutoFit
 End With
 ActiveWorkbook.EnvelopeVisible = True
  With ActiveSheet.MailEnvelope
   .Introduction = "Bom dia!" & vbLf & "Blá blá blá"
   .Item.To = "teste@teste.com"
   '.Item.CC = "teste@teste.com.br"
   .Item.Subject = "Pedido X"
   .Item.Send
  End With
 ActiveSheet.Delete
fnlz:
 Application.DisplayAlerts = True
 Application.ScreenUpdating = True
End Sub
obs.
1. altere no código os itens: Introduction, Item.To, Item.CC e Item.Subject
2. antes de rodar o código oculte também a coluna K (que está vazia)
3. no método acima me parece que não é possível adicionar texto abaixo da imagem no corpo da mensagem, para contornar ou inclua o texto no item Introduction ou insira o texto nas células abaixo da tabela a ser enviada e altere no código o novo intervalo a ser enviado.
#51409
danilov escreveu: No caso, não enviaria automaticamente, só iria criar um novo e-mail e preencher essas informações, aí caso eu queira inserir alguma informação adicional, e o e-mail, faço manual.
Não faz sentido interromper a macro, que é um procedimento automatizado, com o fim de editar manualmente a mensagem. Faça toda a preparação manual antes de rodar a macro.
Por exemplo, coloque o endereço do destinatário em W1 e substitua a linha de comando conforme abaixo (altere a célula se desejar).
Ainda, é possível incrementar o código para enviar mensagens individualizadas a múltiplos destinatários, via preenchimento manual de células, sem editar o código e sem editar as mensagens.

substitua ~~~> .Item.To = "teste@teste.com"
por ~~~> .Item.To = [W1]

dica - para responder clique em +Resposta, só clique em Responder com citação se necessário
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord