Ir ao conteúdo
  • Cadastre-se
Rangel Salomé

Excel Macro Salvar Como Excel

Posts recomendados

Boa Tarde amigos.

Gostaria de solicitar a ajuda de vocês na criação de um Macro. Tenho um arquivo do EXCEL que fica em uma pasta cujo caminho  ''Z:\SGQ\4 - Procedimento de Gestão\PG-8.4.3 Processo de Aquisição\Registros'' que ao ser preenchido o usuário deve salvar o mesmo em outra pasta com o seguinte caminho  ''Z:\SGQ\4 - Procedimento de Gestão\PG-8.4.3 Processo de Aquisição\Registros\RQ 038 Registros'' porém com algumas alterações:

> Ele deve seguir somente até a janela ''Salvar Como'' é escolher a opção PDF.
> A partir dai o funcionário irá escolher o nome que vai salvar o arquivo, como também o local dentro desta pasta ''RQ 038 Registros''

Basicamente preciso que seja um macro que vá somente até a Janela ''Salvar Como'' dentro de uma pasta já predeterminada toda vez que o usuário colocar pra ''salvar'' pelo botão da macro.

Obrigado! 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Teste esse código, acredito que irá te ajudar. Mas provavelmente você tenha que adaptar para alguma particularidade de sua necessidade.

Sub SalvarPDF()

Dim Dir, Nome As String

Dir = "CAMINHO DE DESTINO"
Nome = "NOVO NOME"
 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dir + Nome, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Close
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@R0DR1G0_CWB
Opa beleza?

Testei o macro e auxiliou bastante, porém este macro sempre salva o arquivo como mesmo nome, por cima do outro. Acontece que o usuário preenche uma Ordem de Compra varias vezes ao dia, e deve salvar cada uma com um numero diferente.  Por isso preciso que o Macro mande ele pra tela de ''Salvar Como'' (dentro de uma pasta já predeterminada) já selecionando o tipo PDF, mas que ele pudesse nomear como ele quisesse essa Ordem de Compra.

Vi que existe o comando GetSaveAsFilename(), mas não estou conseguindo utiliza-lo devidamente.
Inclusive qualquer Macro que faço uso dele, ele ''salva o arquivo'' mas quando mando abrir o arquivo, o mesmo não existe, ou da o erro de :  Ocorreu um Erro ao abrir este documento. Este arquivo pode não ser encontrado.


Esse e o macro que estou utilizando.


 

Sub SAVEPDF()
 
Dim FileAndLocation As Variant
Dim strPathLocation As String
Dim strFilename As String
Dim strPathFile As String
 
strPathLocation = Worksheets("Gerador").Range("L2").Value
strFilename = Worksheets("Gerador").Range("J5").Value
strPathFile = strPathLocation & strFilename

FileAndLocation = Application.GetSaveAsFilename _
(InitialFileName:=strPathLocation & strFilename, _
filefilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")

'This is the concatenated value of selected folder location and filename
MsgBox FileAndLocation

End Sub


 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sub SalvaPlanEmPDF()
 Dim wb As Boolean
  ChDir "C:\MinhaPasta01\MinhaPasta02"
  wb = Application.Dialogs(xlDialogSaveAs).Show(Arg2:=57)
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Rangel Salomé

 

Bom dia, considere esse código também... Assim como o que enviei anteriormente você terá que fazer suas adequações:

 

Sub SalvarPDF()

Dim Dir, Nome As String

Dir = "CAMINHO DE DESTINO"
NomePDF = "NOVO NOME"
NomeExcel = "NOVO NOME"
 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dir + NomePDF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.SaveAs Filename:=NomeExcel

ActiveWorkbook.Close
End Sub

 

A única diferença é que inclui uma linha para salvar em Excel também.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queria Adicionar uma sugestão já que todo nome do arquivo tem que ser diferente.

 

Você poderia salvar o arquivo com a Data e Hora atual, assim, só vai ficar igual se acontecer de salvar dois arquivos no mesmo segundo.

 

Sub SalvarPDF()

Dim Dir, Nome As String
Dim MyTime
Dim MyDate
Dim Arquivo As String

Dir = "Desktop"
Nome = "Relatório"
MyTime = Now
MyDate = Date


Arquivo = Nome & "." & _
          Format(MyDate, "dd") & "." & Format(MyDate, "mm") & "." & Format(MyDate, "yyyy") & "." & _
          Format(MyTime, "hh") & "." & Format(MyTime, "nn") & "." & Format(MyTime, "ss")
                
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dir + Nome + Arquivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Close
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp Boa tarde, a macro deu certo, porém ela somente considera a pasta determinada, quando o a planilha do excel está dentro desta pasta determinada. Não estou conseguindo diferenciar o local caso a planilha esteja em outro lugar.

Exemplo:

Planilha está em ''Z:\SGQ\4 - Procedimento de Gestão\PG-8.4.3 Processo de Aquisição\Registros''
Quero que ela salve em ''Z:\SGQ\4 - Procedimento de Gestão\PG-8.4.3 Processo de Aquisição\Registros\RQ 035 Registros''

 

adicionado 23 minutos depois

@Vics opa boa tarde.

Naquele caso a planilha e pra instruir os funcionários a salvar em uma localização determinada, que pode ser alterada pelo mesmo dentro de algumas pastas. 

Porém sua macro também me foi útil, pois tenho setores que precisam salvar a programação de um determinado item no mesmo lugar, sendo ela varias vezes ao dia. Uma unica duvida e que tenho um campo na Planilha que o rapaz coloca um ''numero'' de produção e gostaria de salvar a mesma como: Número (B10) +Data (DD.MM.YY).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se o código abaixo atende. Este não depende do local em que o arquivo Excel foi salvo, então insira o local desejado no lugar de C:\MinhaPasta01\MinhaPasta02. No entanto, para evitar mexer no código, uma opção seria inserir o local em uma célula. No caso do meu exemplo, em A1 coloque C:\MinhaPasta01\MinhaPasta02 e no código altere para ~~~> ChDir [A1]

Sub SalvaPlanEmPDFV2()
 Dim wb
  ChDir "C:\MinhaPasta01\MinhaPasta02"
  wb = Application.GetSaveAsFilename(InitialFileName:="Nome do Arquivo.pdf", _
       FileFilter:="PDF files, *.pdf", Title:="Salvar em PDF")
  If TypeName(wb) = "Boolean" Then
  Else
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=wb
  End If
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@osvaldomp Fiz de ambas maneiras como indicado, mas nenhuma delas ''fixa'' ao usuário abrir a planilha sempre com o ''salvar como'' no mesmo lugar. Se você abre qualquer outro aplicativo que utiliza o ''salvar como'' (até mesmo outra planilha do Excel) e o salva em um local distinto, ao reabrir a planilha onde a macro está, ela irá puxar o ''salvar como'' do ultimo local utilizado.
Exemplo:
Coloquei o Macro pra o M1 (com o local de Z:\SGQ\4 - Procedimento de Gestão\PG-8.4.3 Processo de Aquisição\Registros\RQ 035 Registros), porém se salvo uma planilha diferente em C:\Users\Rangel\Downloads), ao reabrir a planilha com o Macro, o novo destino para o salvar como será o da pasta Downloads.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Rangel Salomé disse:

 

adicionado 23 minutos depois

@Vics opa boa tarde.

Naquele caso a planilha e pra instruir os funcionários a salvar em uma localização determinada, que pode ser alterada pelo mesmo dentro de algumas pastas. 

Porém sua macro também me foi útil, pois tenho setores que precisam salvar a programação de um determinado item no mesmo lugar, sendo ela varias vezes ao dia. Uma unica duvida e que tenho um campo na Planilha que o rapaz coloca um ''numero'' de produção e gostaria de salvar a mesma como: Número (B10) +Data (DD.MM.YY).

 

@Rangel Salomé, Faça o seguinte:

Sub SalvarPDF()

Dim MyDate
Dim valor As Integer 'ou As String se tiver letras, 'As Double se tiver casa decimal
Dim Arquivo As String

valor = Range("B10").Value

Arquivo = valor & "." & _
          Format(MyDate, "dd") & "." & Format(MyDate, "mm") & "." & Format(MyDate, "yyyy")
          
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= valor + Arquivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Close
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Rangel Salomé disse:

@osvaldomp Fiz de ambas maneiras como indicado, mas nenhuma delas ''fixa'' ao usuário abrir a planilha sempre com o ''salvar como'' no mesmo lugar.

 

É estranho pois aqui funciona de boa, sempre salva no endereço colocado em A1.

 

Você poderia disponibilizar uma amostra do seu arquivo Excel com algumas linhas com dados, com o endereço em A1 e com o código instalado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

ebook grátis "Aprenda a ler resistores e capacitores", de Gabriel Torres

GRÁTIS! BAIXE AGORA MESMO!