Notifications
Clear all

Salvar planilha (.xlsm) com nome da célula - Alguns erros

10 Posts
2 Usuários
0 Reactions
5,998 Visualizações
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Olá, pessoal

Peguei aqui no fórum (não lembro onde) uma macro para salvar a planilha (no formato .xlsm) com o nome de uma célula específica.
Contudo, encontrei alguns problemas pequenos na utilização da macro. Vejamos:

Sub Salvar()
    
    ActiveWorkbook.SaveCopyAs "G:" & [K2].Value & ".xlsm"
    MsgBox "Arquivo foi salvo com sucesso"
 
End Sub

Quais foram os problemas:
1° - Quando eu uso essa macro, sempre quando eu fecho o Excel pergunta se eu quero salvar a planilha. (Queria que ele fechasse sem perguntar isso)

2° - Quando eu abro essa planilha (faço alguma modificação) e vou salvar novamente pelo botão com macro, o sistema dá erro, pois a planilha está sendo usada e não pode salvar o arquivo.

Os caros colegas sugeririam alguma outra macro que não tenha esses problemas?

Grato

 
Postado : 08/01/2013 10:12 am
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

OBS: O exemplo dois é no sentido de que: Eu abro uma planilha já salva e quando tento executar o comando salvar (para salvar as alterações), a planilha dá erro, pois o arquivo está sendo utilizado.

 
Postado : 08/01/2013 10:25 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Georgevbs,
Para o segundo(2°):
o "comando" salva uma copia da planilha em uso com um novo nome. Se tentar salvar novamente uma copia do arquivo com o mesmo nome e no mesmo local do arquivo em uso, o sistema operacional (leia-se windows) não permite.Então é necessario alterar o nome ou local de gravaçao.
Paro o primeiro(1°) utilize (no final do codigo antes do end sub):
ActiveWorkbook.Saved=True, assim o arquivo será fechado e as alterações não serão gravadas(salvas)
ou
ActiveWorkbook.Save , assim o arquivo será salvo e no fechamento não haverá o questionamento

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

 
Postado : 08/01/2013 11:02 am
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Vc teria um macro alternativo para o exemplo (2°), Reinaldo?

 
Postado : 08/01/2013 1:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desculpe, mas como disse salvar uma copia com o mesmo nome e local onde está o arquivo original (e o mesmo estando em uso) não é permitido pelo sistema operacional (windows).
Tambem não vejo qual objetivo de salvar assim o aruqivo?

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

 
Postado : 08/01/2013 1:42 pm
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Por exemplo... Na primeira vez que eu salvo a planilha ela ficou com o nome "Agosto.xlsm". Contudo, dias depois... eu abro essa mesma tabela e quando uso o botão salvar... na minha macro dá erro, como vc bem apontou. O que eu quero é outro código, então. Um que habilite, por exemplo, o "Salvar Como". Ao invés do código "ActiveWorkbook.SaveCopyAs". Mas eu preciso de um "Salvar como" que já apareça o nome do arquivo na caixa, ex.: "Agosto.xlsm".
Se puder ajudar, fico grato.

 
Postado : 08/01/2013 2:13 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O salvor como do excel não faz isso??

mas experimente:

Sub SeiLa()
Application.DisplayAlerts = False
    ActiveWorkbook.Save "G:" & [K2].Value & ".xlsm"
Application.DisplayAlerts = True
    
MsgBox "Arquivo foi salvo com sucesso"

End Sub

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

 
Postado : 08/01/2013 2:24 pm
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Não serviu. Mas, só para ajudar, a mesma ideia, com outras palavra. Eu preciso de uma macro que Salve a Planilha com a extensão ".xlsm" e com o nome da célula ex.: "K2".

Esse código que vc enviou não salva em ".xlsm". Mesmo assim, obrigado tentativa.

 
Postado : 08/01/2013 2:38 pm
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Eu tentei usar o "ActiveWorkbook.SaveAs". Mas tbm não serviu. A ideia seria que a macro abrisse a caixa de "Salvar como" e já trouxesse o nome do arquivo preenchido no campo nome (nesse caso o nome contido na célula K2). Pq ai Excel ia perguntar ao usuário se ele deseja substituir o arquivo.

 
Postado : 08/01/2013 2:51 pm
(@georgevbs)
Posts: 30
Eminent Member
Topic starter
 

Consegui resolver com esse código:

nome = [K2].Value & ".xlsm"
ActiveWorkbook.SaveAs Filename:="G:" & nome, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Ficou perfeito. Obrigado pela ajuda.

 
Postado : 08/01/2013 3:26 pm