Notifications
Clear all

Abrindo woorkbook principal e cópia

8 Posts
3 Usuários
0 Reactions
1,133 Visualizações
(@mauricio92)
Posts: 0
New Member
Topic starter
 

Boa tarde, estou trabalhando em um formulário que possui um botão para salvar meu trabalho, um botão para abrir planilha,outro para fechar a planilha e por fim um botão que salva a cópia deste workbook em um local diferente ( com outro nome inclusive ).
Tudo funciona perfeito, porém quando eu clico no botão que salva uma cópia, e utilizo os botões de abrir ou fechar planilha, ele abre o arquivo da cópia e não o arquivo "principal" que eu estou trabalhando.

Gostaria de poder salvar a cópia, e quando eu abrisse ou fechasse a planilha utilizando os botões dos formulários não trabalhasse com o arquivo cópia.

Código do botão que salva a cópia

Private Sub Bt_Enviar_Click()
dirCopia = "C:UsersDesktopTesteMacro"
nomeCopia = "Teste_Enviar"
 
ActiveWorkbook.SaveAs Filename:= _
dirCopia + nomeCopia, _
FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Boão para abrir planilha

Private Sub Bt_AbrePlanilha_Click()
Application.Visible = True
End Sub
 
Postado : 22/11/2017 3:13 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

mauricio92,

Boa tarde!

Para manter o fórum devidamente organizado, solicitamos, por gentileza, utilizar a TAG CODE existente no início da caixa de mensagens, para inserir códigos VBA.

Quanto a sua dúvida, troque a linha de comando:

ActiveWorkbook.SaveAs Filename:= _
dirCopia + nomeCopia, 

Por Esta:

ActiveWorkbook.SaveCopyAs dirCopia + nomeCopia
 
Postado : 22/11/2017 3:36 pm
(@mauricio92)
Posts: 0
New Member
Topic starter
 

Olá, fiz o teste porém deu erro de sintaxe .

Private Sub Bt_Enviar_Click()
dirCopia = "C:UsersLTNAT-TRAINEE-03DesktopTesteMacro"
nomeCopia = "Teste_Enviar"
 
ActiveWorkbook.SaveCopyAs dirCopia + nomeCopia _
FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
 
Postado : 22/11/2017 4:00 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Desculpe se não me fiz entender. A linha de comando deve parar em nomeCopia. Não deve ter underline e nem nada mais.

 
Postado : 22/11/2017 5:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que entendi, a questão é que você quer salvar uma cópia do arquivo mas manter o original aberto, se for isto o comando SaveAs salva o arquivo original com outro nome mas não mantem o original aberto, ficando aberto o arquivo que acabou de salvar, e tambem em sua rotina está salvando um arquivo com macro em um arquivo sem macro "xlsx" quando utiliza o "FileFormat:=xlOpenXMLWorkbook".

Os parâmetros do FileFormat são :
xlWorkbookNormal (-4143) xls Excel 1997 - 2003
xlOpenXMLWorkbook (51) xlsx without macro's
xlOpenXMLWorkbookMacroEnabled (52) xlsm with or without macro's
xlExcel12 (50) xlsb Excel Binary Workbook with or without macro's
xlExcel8 (56) xls Excel 2007 or later
xlCSV (6) csv Local:=True

Se a intenção é guardar uma cópia, você pode estar utilizando rotina para criar um Backup do arquivo, ou em vez de SaveAs usar SaveCopyAs.

Se for isto de uma olhada nestes links:
How to use VBA SaveAs without closing calling workbook?
https://stackoverflow.com/questions/188 ... g-workbook

AutoBackup Workbook (Template)
http://www.vbaexpress.com/kb/getarticle.php?kb_id=456

Creating a Dated Backup File
https://excelribbon.tips.net/T013195_Cr ... _File.html

[]s

 
Postado : 22/11/2017 6:25 pm
(@mauricio92)
Posts: 0
New Member
Topic starter
 

Wagner, o que o sr. me orientou a fazer deu certo!
Salvo a copia e fico trabalhando na planilha original, porém a cópia fica salva sem formato excel, o que eu estou querendo fazer é salvar isso direto na pasta do google drive, de forma que um programa paralelo fique lento direto do google drive a cópia que salvei, dessa forma ficará sempre atualizando, mas meu "programa paralelo" não encontra o arquivo cópia pois não está em formato excel.

O que preciso é que a cópia que agora tenho salva direto na pasta do google drive( e está funcionando como eu queria, ou seja, não está abrindo no meu formulário ), tenha o formato do excel, pode ser sem macros, o que me importa é a informação atualizada dentro da planilha.

Deu para entender?

Desde já agradeço a atenção.

 
Postado : 23/11/2017 7:31 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

mauricio92,

Boa noite!

Ok, entendido.

Altera a linha:

nomeCopia = "Teste_Enviar"

Para esta, se quiser que seja um arquivo Excel com macros:

nomeCopia = "Teste_Enviar.xlsm"

Ou para esta, se quiser que seka um arquivo Excel sem macro:

nomeCopia = "Teste_Enviar.xlsx"
 
Postado : 23/11/2017 4:53 pm
(@mauricio92)
Posts: 0
New Member
Topic starter
 

Obrigado amigos!

Solucionado, está funcionando como planejado.

 
Postado : 24/11/2017 6:20 am