Notifications
Clear all

MACRO GRAVADA NO ARQUIVO PERSONAL SALVAR ARQUIVO

6 Posts
2 Usuários
0 Reactions
2,056 Visualizações
(@matoso2010)
Posts: 20
Eminent Member
Topic starter
 

Bom dia,

Pessoal, preciso da ajuda de vocês, tenho a macro abaixo para criar pastas e sub-pastas com a data e salvar o arquivo, quando executo a mesma dentro do próprio arquivo, sem problema, mas o que eu preciso é executá-la em um arquivo do excel compartilhado, então fiz o seguinte gravei a macro no arquivo Personal e abro a mesma só que quando executo dá o seguinte erro de tempo de execução: erro na seguinte linha de comando:
ThisWorkbook.SaveAs "W:Mario" & PastaMes & "" & PastaData & "" & NameFile
Se puderem me dar uma dica, acho que deve haver uma forma de ele se referir ao arquivo aberto no momento.

Sub Salva()
Application.ScreenUpdating = False
Dim PastaMes As String
Dim PastaData As String
Dim NameFile As String
Dim OK As Boolean

PastaMes = Format(Now, "mm") & "-" & Format(Now, "mmmm") & "-" & Format(Now, "yyyy")
PastaData = Format(Now, "dd-mm-yyyy")
NameFile = Format(Now, "dd-mm-yyyy-hhmm - ") & "Fluxo de Pedidos" & ".xlsm"
OK = CreateFolders(PastaMes, "W:Mario")

If Not OK Then Exit Sub

CreateFolders PastaData, "W:Mario" & PastaMes
ThisWorkbook.SaveAs "W:Mario" & PastaMes & "" & PastaData & "" & NameFile

MsgBox "! Arquivo Salvo com Sucesso."
Application.ScreenUpdating = False
End Sub

Function CreateFolders(sSubFolder As String, ByVal sBaseFolder As String) As Boolean
CreateFolders = True
'Acrescenta a barra ao final do endereço da pasta
If Right(sBaseFolder, 1) <> "" Then
sBaseFolder = sBaseFolder & ""
End If

'Verifica se a pasta base existe
If Len(Dir(sBaseFolder, vbDirectory)) > 0 Then
'Verifica se a subpasta existe
If Len(Dir(sBaseFolder & sSubFolder, vbDirectory)) = 0 Then
'Se a subpasta não existir, ela é criada
MkDir sBaseFolder & sSubFolder
End If
Else 'A pasta base não existe...
MsgBox "A pasta base não existe!" & vbCrLf & sBaseFolder, vbExclamation
CreateFolders = False
End If
End Function

 
Postado : 29/11/2012 5:54 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

matoso, no momento não tenho como recriar a situação, mas procure adicionar alguns MSGBOX apos a criação das pastas para ver se o caminho está correto, por exemplo :

MkDir sBaseFolder & sSubFolder
MsgBox sBaseFolder & sSubFolder

Como a mesma está compartilhada, pode estar perdendo o caminho, então será necessário recriarmos o comando ChDir, de umaolhada nos tópicos abaixo se ajudam.

Thisworkbook.Path
viewtopic.php?f=10&t=2324&p=10005&hilit=ChDir#p10005

Obter caminho da pasta dos arquivos [Resolvido]
viewtopic.php?f=16&t=6363&p=33474&hilit=caminho#p33474

Abrir planilha em outro diretório
viewtopic.php?f=10&t=2848&p=12855&hilit=path#p12855

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/11/2012 6:38 am
(@matoso2010)
Posts: 20
Eminent Member
Topic starter
 

Obrigado Mauro, eu consegui alterando a linha de comando: "ThisWorkbook.SaveAs "W:Mario" & PastaMes & "" & PastaData & "" & NameFile" para "ActiveWorkbook.SaveAs "W:Mario" & PastaMes & "" & PastaData & "" & NameFile".

Só tenho um problema agora, ele fecha o arquivo q estou trabalhando e abre o arquivo que salvei, eu queria que o arquivo que estou trabalhando ficasse aberto e outro que salvou não abrir.

Alguém puder me dar uma dica

 
Postado : 29/11/2012 7:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Olhe a sua rotina com atenção e verifique onde o arquivo esta sendo fechado.

ActiveWorkbook.Close

Application.Quit

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/11/2012 7:19 am
(@matoso2010)
Posts: 20
Eminent Member
Topic starter
 

Eu dei uma olhada, mas, não tem esse comando, o que ocorre nessa parte do código:
CreateFolders PastaData, "W:Mario" & PastaMes
ActiveWorkbook.SaveAs "W:Mario" & PastaMes & "" & PastaData & "" & NameFile

Cria a pasta e salva o arquivo atual com a nome indicado, então, aqui teria que colocar um código para manter a pasta atual aberta e somente salvá-la sem abrir a que salvou.

 
Postado : 29/11/2012 7:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

matoso, o que ocorre é que você está salvando o arquivo aberto com outro nome e não criando um novo book, o ideal é utilizar a instrução :

"Application.Workbooks.Add"

De uma olhada no link abaixo e baixe o exemplo e terá uma idéia, tem outras formas de ajustar, mas no momento estou saindo para uma inspeção e não da tempo.

Criar um novo arquivo excel dinamicamente
http://www.exceldoseujeito.com.br/2008/ ... micamente/

Se não conseguir resolver mais tarde dou uma olhada.

Utilize a pesquisa no Forum, encontrará outros tópicos referente ao assunto

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/11/2012 7:52 am