Novamente venho pedir ajuda.
TEnho minha macro de envio de pedido funcionando corretamente, com a seguinte instrucao:
sNomeArquivo = wbAtual.Worksheets("PEDIDO DE LOJA").name ' Pedido de Loja é o nome da Aba que esta sendo enviada, apos envio a mesma se mantem com seus campos editaveis limpos para serem preenchidos no proximo envio de pedido. Desta forma entao todos os pedidos que estao sendo enviados estao saindo com nome de Pedido de LOJA.XLS
Porem quero que cada pedido enviado, use a ABA Padrao, PEDIDO DE LOJA + " -" + " G1" - Onde PEDIDO DE LOJA é a ABA que esta sendo enviada e G1 é a celula desta aba ficando assim teoricamente.
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & Range("G1").Value.Name
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & Range("G1").Name
Mas tanto um como o outro esta dando erro na Macro.
Poderiam me ajudar ?
ou melhor, logo em seguida tenho este comando
wbAtual.SaveAs Filename:=sLocalTemp & sNomeArquivo + G1
Poderia adicionar aqui a Celula G1 ?
fazerbem,
Bom dia!
Já tentou assim:
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
sim , Bom dia amigao
erro em tempo de execucao 438
O Objeto nao aceita esta propriedade ou metodo
então cole seu arquivo e explique como chegar até esse erro.
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
fazerbem,
Bom dia!
Já tentou assim:
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value
Isso tem que funcionar.
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
ja tentei e nao deu, acho que e porque falta o .Name
segue comando
Inclusive abri outro post que se refere a esta Macro , porem assuntos diferentes.
Nao quis misturar com este topico.
Sub A3_EnviaPlanilhaAtiva_Gauer() Dim oOutlook As Object Dim oEmail As Object Dim wbAtual As Workbook Dim sNomeArquivo As String Dim sLocalTemp As String Dim resultado As VbMsgBoxResult Dim aba As String aba = Range("F4").Value 'referente Celula aba "Pedido Gauer" Dim corpo As String corpo = Sheets(aba).Range("AS20") Application.ScreenUpdating = False Set oOutlook = CreateObject("Outlook.Application") Set oEmail = oOutlook.CreateItem(0) sLocalTemp = "C:UsersAndreDesktop" ' Copia a planilha ativa e salva em local temporário ActiveSheet.Copy Set wbAtual = ActiveWorkbook ' Aqui você define qual planilha deve ser gravada sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER").name On Error Resume Next Kill sLocalTemp & sNomeArquivo On Error GoTo 0 wbAtual.SaveAs Filename:=sLocalTemp & sNomeArquivo With oEmail .To = "gauer@gauerdobrasil.com.br" .Subject = "Pedido " & [G1].Value & " - " & [F4].Value .Body = corpo .Attachments.Add wbAtual.FullName .ReadReceiptRequested = True ' confirmação de leitura resultado = MsgBox("Deseja ver o Envio e Adicionar um anexo( SIM ) ou ( NÃO ) ?", vbYesNo, "Tomando uma Decisão") If resultado = vbYes Then .Display Else .Send End If 'Envia o email a Gauer 'NovoArquivoXLS.SendMail "gauer@gauerdobrasil.com.br", "Pedido " & [F4].Value, True End With 'Deleta o arquivo temporário wbAtual.ChangeFileAccess Mode:=xlReadOnly Kill wbAtual.FullName wbAtual.Close SaveChanges:=False Set oEmail = Nothing Set oOutlook = Nothing End Sub
Tenta assim
Sub A3_EnviaPlanilhaAtiva_Gauer() Dim oOutlook As Object Dim oEmail As Object Dim wbAtual As Workbook Dim sNomeArquivo As String Dim sLocalTemp As String Dim resultado As VbMsgBoxResult Dim aba As String aba = Range("F4").Value 'referente Celula aba "Pedido Gauer" Dim corpo As String corpo = Sheets(aba).Range("AS20") Application.ScreenUpdating = False Set oOutlook = CreateObject("Outlook.Application") Set oEmail = oOutlook.CreateItem(0) sLocalTemp = "C:UsersAndreDesktop" ' Copia a planilha ativa e salva em local temporário ActiveSheet.Copy Set wbAtual = ActiveWorkbook ' Aqui você define qual planilha deve ser gravada sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value On Error Resume Next Kill sLocalTemp & sNomeArquivo On Error GoTo 0 wbAtual.SaveAs Filename:=sLocalTemp & sNomeArquivo With oEmail .To = "gauer@gauerdobrasil.com.br" .Subject = "Pedido " & [G1].Value & " - " & [F4].Value .Body = corpo .Attachments.Add wbAtual.FullName .ReadReceiptRequested = True ' confirmação de leitura resultado = MsgBox("Deseja ver o Envio e Adicionar um anexo( SIM ) ou ( NÃO ) ?", vbYesNo, "Tomando uma Decisão") If resultado = vbYes Then .Display Else .Send End If 'Envia o email a Gauer 'NovoArquivoXLS.SendMail "gauer@gauerdobrasil.com.br", "Pedido " & [F4].Value, True End With 'Deleta o arquivo temporário wbAtual.ChangeFileAccess Mode:=xlReadOnly Kill wbAtual.FullName wbAtual.Close SaveChanges:=False Set oEmail = Nothing Set oOutlook = Nothing End Sub
...
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
entao ja tentei assim , como sugerido pelo outro colega
mas nao vai
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value
veja abaixo
-------------------------------------------------------------------
Re: Adicionar um parametro a Macro
Mensagempor Wagner Morel » Qui Jan 14, 2016 10:39 am
fazerbem,
Bom dia!
Já tentou assim:
CÓDIGO: SELECIONAR TODOS
sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value
Se a resposta foi últil para você, por gentileza, Amigo,clique na mãozinha ao lado direito da sua tela. No canto superior.
Atenciosamente
Wagner Morel
Avatar do usuário
Wagner Morel
Moderador
Moderador
Mensagens: 1837
Registrado em: Sáb Out 20, 2012 1:49 pm
Localização: Fortaleza - CE
Agradeceu : 22 vezes
Foi agradecido: 817 vezes
Se eu entendi direito PEDIDO GAUER é um prefixo, ou seja todos os arquivos teram esse nome a diferença é o nome da celula G1
Se for isso teste assim
sNomeArquivo = "PEDIDO GAUER" & " - " & Range("G1").Value
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Se eu entendi direito PEDIDO GAUER é um prefixo, ou seja todos os arquivos teram esse nome a diferença é o nome da celula G1
Se for isso teste assim
sNomeArquivo = "PEDIDO GAUER" & " - " & Range("G1").Value
Seguinte Pedido Gauer e uma ABA fixa que serve de modelo basico para todas as abas temporarias abertas que estao aguardando envio. Esta ABA Pedido Gauer e a que sera enviada para a empresa,mpois a empresa exige este padrao, e as minhas abas temporarias criadas seguem um padrao diferente as minhas necessidades. Quando o envio é processado, alguns dados destas abas temporarias, que nada mais São que os pedidos de cada lojista, e estas abas São todas iguais, mudando-se apenas os dados da loja e produtos pedidos entre outras coisas, existe uma outra Macro antes desta que copia os dados da aba temporaria, cola na aba basica que é a Pedido Gauer , feito isto, aciona esta macro acima para fazer entao o envio a empresa. Quando a empresa recebe o pedido, o assunto vai como : Pedido 14 - Loja do Joao, ou Pedido 15 - Loja do Ze. E o anexo esta indo como Pedido Gauer.xls, eu wuero que va como Pedido Gauer 14 - Loja do Joaoa.
Apos isso a outra macro termina o processo e limpa a aba Pedido Gauer e a deixa pronta ao proximo pedido.
Lembrando que F4 e o nome da aba
aba = Range("F4").Value 'referente Celula aba "Pedido Gauer"
Acho que detalhei bem .
Muito obrigado pela ajuda de sempre, adoro vcs !!!!
Andre
Resolvendo eta aqui agora eu fecho com chave de ouro !