Notifications
Clear all

Adicionar um parametro a Macro

12 Posts
3 Usuários
0 Reactions
1,155 Visualizações
(@fazerbem)
Posts: 0
New Member
Topic starter
 

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 ?

 
Postado : 14/01/2016 6:58 am
(@fazerbem)
Posts: 0
New Member
Topic starter
 

ou melhor, logo em seguida tenho este comando

wbAtual.SaveAs Filename:=sLocalTemp & sNomeArquivo + G1

Poderia adicionar aqui a Celula G1 ?

 
Postado : 14/01/2016 7:04 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

fazerbem,

Bom dia!

Já tentou assim:

sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value
 
Postado : 14/01/2016 7:39 am
(@fazerbem)
Posts: 0
New Member
Topic starter
 

sim , Bom dia amigao

erro em tempo de execucao 438
O Objeto nao aceita esta propriedade ou metodo

 
Postado : 14/01/2016 8:25 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

então cole seu arquivo e explique como chegar até esse erro.

 
Postado : 14/01/2016 9:58 am
(@mprudencio)
Posts: 0
New Member
 

fazerbem,

Bom dia!

Já tentou assim:

sNomeArquivo = wbAtual.Worksheets("PEDIDO GAUER") & " - " & Range("G1").Value

Isso tem que funcionar.

 
Postado : 14/01/2016 1:10 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

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
 
Postado : 14/01/2016 3:44 pm
(@mprudencio)
Posts: 0
New Member
 

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

...

 
Postado : 14/01/2016 4:13 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

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

 
Postado : 14/01/2016 4:18 pm
(@mprudencio)
Posts: 0
New Member
 

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
 
Postado : 14/01/2016 4:57 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

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

 
Postado : 14/01/2016 5:11 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

Resolvendo eta aqui agora eu fecho com chave de ouro !

 
Postado : 14/01/2016 7:05 pm