Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Criar planilha para envio em e-mail [Resolvido]

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Ana Laura
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Out 20, 2010 11:06 am

Criar planilha para envio em e-mail [Resolvido]

Mensagem por Ana Laura » Qua Out 20, 2010 11:08 am

bom dia a todos!

Estou com um problema, tenho uma planilha de cotação. A mesma possuí várias "abas". Até aí ok.

1- Eu preciso de um código que gere uma cópia da planilha ativa (detalhe, somente valores, ela tem fórmulas e quero que vá somente os valores na cópia).

2- Essa nova planilha deve ser salva em uma outra pasta específica, e deve ser nomeada com o valor de uma célula da planilha. Ex: no B2 tem Ana Laura, a planilha nova deve chamar Ana Laura.

É possível?

Esse dois itens acima são prioridades.

Agora uma perfumaria.
Essa planinha nova (chamada acima, com exemplo de Ana Laura) deve ser anexada em um e-mail (outlook) com o assunto e texto fixos.

Alguém pode me orientar????

Obrigada!
Editado pela última vez por Ana Laura em Qua Out 27, 2010 10:01 am, em um total de 1 vez.



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 2643
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Criar planilha para envio em e-mail

Mensagem por webmaster » Qua Out 20, 2010 2:18 pm

Ana,

Praticamente todas as respostas as essas perguntas foram respondidas em outros fóruns. Use o mecanismo de busca para encontrá-las. Na falta delas, voltamos a falar.

Abraços


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Avatar do usuário
webmaster
Administrador
Mensagens: 2643
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Criar planilha para envio em e-mail

Mensagem por webmaster » Qui Out 21, 2010 10:21 am

Ana,

Mantenha a conversa no mesmo tópico. Não abra outros, a não ser que assunto tratado mude. Assim deixamos o fórum mais organizado.

Abraços


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Ana Laura
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Out 20, 2010 11:06 am

Re: Criar planilha para envio em e-mail

Mensagem por Ana Laura » Sex Out 22, 2010 7:11 am

Bom dia!

Eu só abri um novo tópico pq não achei o q procuro nos demais tópicos.

Pode me direcionar?

Obrigada!



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1559
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Criar planilha para envio em e-mail

Mensagem por Mauro Coutinho » Sex Out 22, 2010 11:31 am

Ana, as rotinas abaixo, copia a planilha Ativa para uma nova, renomeando de acordo com o nome na Celula B2 e sem as formulas, copie as mesmas para um modulo e teste :

Código: Selecionar todos

Public delShts

Sub NovaPlanilhaSemFormulas()
Dim wshPlan As Worksheet
Dim i As Integer
Dim DelNome As Worksheet

Application.ScreenUpdating = False

Application.DisplayAlerts = False

On Error Resume Next

'Nome na Sheet Ativa em B2
delShts = CStr(ActiveSheet.Range("B2").Value)

Set DelNome = Sheets(delShts)
    
            'Se já existir deleta antes de criar
            MyNewSheet delShts
                
                'Conta qde de Planilhas
                i = Worksheets.Count
                
                'Define o novo nome
                newSht = delShts
                    
                ActiveSheet.Copy after:=Worksheets(i)
                i = i + 1
                
                Set wshPlan = Worksheets(i)
                
                On Error Resume Next
        
        'Copia a Planilha Ativa e cola sem as formulas
        With wshPlan.UsedRange
            .Copy
            .PasteSpecial Paste:=xlValues
        End With
        
        Application.CutCopyMode = False

    'Renomeia a planilha nova
    With wshPlan
            .Name = newSht
            .Range("A1").Select
    End With

End Sub

'Deleta a planilha antiga
Sub MyNewSheet(SheetName)
    Application.DisplayAlerts = False
    On Error Resume Next
    Worksheets(SheetName).Delete
End Sub
Quanto a parte de envio de email, pelo sistema de BUSCA do Forum, temos alguns tópicos, é só pesquisar por Enviar Email e encontrará varios outros.

Enviar e-mail através do excel
viewtopic.php?f=5&t=287&p=1764&hilit=enviar+email#p1764

Incluir compromisso e anexo em conta do Outllook Externo
viewtopic.php?f=6&t=372&p=2240&hilit=enviar+email#p2240

Enviar email sem uso do Outlook
viewtopic.php?f=6&t=423&p=2549&hilit=enviar+email#p2549

[]s


Mauro Coutinho - Exemplos Somente em Office 2003
São José dos Pinhais - Pr
Se sua Duvida foi solucionada . . . .Acrescente [RESOLVIDO] ao título.
Ficou satisfeito com o FORUM ? Divulgue, indicando-o aos colegas !

Ana Laura
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Out 20, 2010 11:06 am

Re: Criar planilha para envio em e-mail

Mensagem por Ana Laura » Sex Out 22, 2010 12:54 pm

boa tarde Mauro,

obrigada pela resposta, o código funcionou, porém um detalhes. Eu preciso que seja criado um novo arquivo e não uma nova pasta e mais um detalhe, tenho dois botoes nessa planilha, gostaria que eles não aparececem na nova planilha.

Pode me ajudar mais uma vez?????

Obrigada mesmo!!



Avatar do usuário
webmaster
Administrador
Mensagens: 2643
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Criar planilha para envio em e-mail

Mensagem por webmaster » Sex Out 22, 2010 1:34 pm

Ops!

Estava construindo outra solução quando o Mauro respondeu a questão. De qualquer forma, a macro abaixo cria uma nova planilha e copia somente os valores desta, sem fórmulas:

Código: Selecionar todos

Sub CopiaSomenteConteudo()
    Dim NewSheet As Worksheet, CurrentSheet As Worksheet
    'pega a planilha atual
    Set CurrentSheet = ActiveSheet
    'cria uma nova planilha
    Set NewSheet = ThisWorkbook.Worksheets.Add
    NewSheet.Name = CurrentSheet.Name & "2"
    'copia todas as células da planilha ativa
    CurrentSheet.Cells.Copy
    'cola só os valores na nova planilha
    NewSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    'zera os objetos
    Set NewSheet = Nothing
    Set CurrenSheet = Nothing
End Sub
Neste caso, como não houve a cópia da planilha, objetos como imagem e botões não são trazidos.

Abraços


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1559
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Criar planilha para envio em e-mail

Mensagem por Mauro Coutinho » Sex Out 22, 2010 7:43 pm

Ana, veja se seria isso, aproveitei parte da rotina do Tomas e fiz outra adaptação.

Só não se esqueça de alterar o Caminho aonde será salva a nova Pasta.

Código: Selecionar todos

Sub NovaPastaSemFormulas()

Dim CurrentSheet As Worksheet

    Application.ScreenUpdating = False

    'Nome na Sheet Ativa em B2
    nomeB2 = CStr(ActiveSheet.Range("B2").Value)

    Set CurrentSheet = ActiveSheet
                
    On Error Resume Next
        
    'copia todas as células da planilha ativa
    CurrentSheet.Cells.Copy
        
    'Cria a Nova PASTA (ARQUIVO)
    Set Wkb = Workbooks.Add
       
    'cola somente os valores na planilha Ativa da nova Pasta
    ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        
    Application.CutCopyMode = False
        
    'Define os Novos Nomes - Planilha(ABA) e Pasta(Arquivo)
    novoNome = nomeB2
 
    'Renomeia a planilha nova com
    'o Nome que estava em B2
    With ActiveSheet
        .Name = novoNome
        .Range("A1").Select
    End With

    Range("A1").Select
    
    'Enibe a mensagem se a pasta já existir
    'Com essa instrução a Pasta será substiutida sem questionamento
    Application.DisplayAlerts = False
    
    'Salva a Nova Pasta com o mesmo Nome
    Wkb.SaveAs Filename:="E:\EXCEL FORUN\TOMAZ\Ana\" & novoNome & ".xls"

End Sub
[]s


Mauro Coutinho - Exemplos Somente em Office 2003
São José dos Pinhais - Pr
Se sua Duvida foi solucionada . . . .Acrescente [RESOLVIDO] ao título.
Ficou satisfeito com o FORUM ? Divulgue, indicando-o aos colegas !

Ana Laura
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Out 20, 2010 11:06 am

Re: Criar planilha para envio em e-mail

Mensagem por Ana Laura » Qua Out 27, 2010 9:30 am

Bom dia Mauro,

Muito ótimo, o código, o nome e o caminho estão funcionando perfeitamente mas, ainda me falta um detalhe... essa planilha copiada tem um layout que deve ser preservado.
Desta forma a nova planilha vem sem a configuração da outra.

Muito obrigada por todo o apoio, a macro está perfeita. Pode ajustar só mais esse detalhe por gentileza?


Muitoooo obrigada mesmo!



Ana Laura
Acabou de chegar
Acabou de chegar
Mensagens: 8
Registrado em: Qua Out 20, 2010 11:06 am

Re: Criar planilha para envio em e-mail

Mensagem por Ana Laura » Qua Out 27, 2010 10:00 am

Bom dia novamente!

Obrigada mais uma vez pelo apoio, eu já consegui ajustar para a minha necessidade o que voces montaram. Muito obriagda!



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder