Notifications
Clear all

Transferir ou deletar arquivo de um diretório via vba

15 Posts
2 Usuários
0 Reactions
3,025 Visualizações
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

caros muito boa tarde, estou precisando mais uma vez da ajuda de vocês...tenho um formulário que cria algumas contas e salva esta conta em um diretório especifico com o nome da conta que está no formulário, até ai tudo bem, ele faz direitinho, salva o arquivo no diretório, o problema é quando o administrador da pasta entra neste arquivo que foi criado através do formulário ele vai aprovar esta conta...eu consegui fazer com que depois de aprovado este arquivo fosse salvo em outro diretório, porém não consigo deletar o arquivo anterior, ficando 2 arquivos em 2 pastas...

Se alguém conhecer alguma maneira de fazer com que ao salvar o arquivo em outra pasta, delete o anterior...ficando apenas 1 arquivo

Atenciosamente

 
Postado : 07/01/2013 11:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vc disse "eu consegui fazer com que depois de aprovado este arquivo fosse salvo em outro diretório"
Talvez seja melhor "muda-lo" do diretorio inicial para o final.
O seguinte codigo faz isso(altere o caminho e nome do arquivo de acordo com sua necessidade)

   
Name "D:ReinaldoConvertXToDVDCópia de Finanças (2).xlsm" As "D:ReinaldoAny Video ConverterCópia de Finanças (2).xlsm"

Se preferir pode deletar o arquivo (porem cuidado, já que não dá para recupera-lo)

    
Kill "D:ReinaldoConvertXToDVDCópia de Finanças (2).xlsm"
 
Postado : 07/01/2013 11:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Aqui também tem muita coisa que pode te ajudar.
http://www.rondebruin.nl/folder.htm

Att

 
Postado : 07/01/2013 12:47 pm
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

Vc disse "eu consegui fazer com que depois de aprovado este arquivo fosse salvo em outro diretório"
Talvez seja melhor "muda-lo" do diretorio inicial para o final.
O seguinte codigo faz isso(altere o caminho e nome do arquivo de acordo com sua necessidade)

   
Name "D:ReinaldoConvertXToDVDCópia de Finanças (2).xlsm" As "D:ReinaldoAny Video ConverterCópia de Finanças (2).xlsm"

Se preferir pode deletar o arquivo (porem cuidado, já que não dá para recupera-lo)

    
Kill "D:ReinaldoConvertXToDVDCópia de Finanças (2).xlsm"

Dae Reinaldo mais uma vez obrigado pela ajuda...segue abaixo o código que uso para salvar o arquivo ativo em outro diretório, conforme sua sugestão como colocar o código para mover o arquivo atual para outro diretório...atenciosamente

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" & Cells(3, 10) & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True

 
Postado : 07/01/2013 1:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Leia o conteúdo do link, na postagem anterior, é possível que te ajude...

Sub Move_Rename_One_File()
'You can change the path and file name
    Name "C:UsersRonSourceFolderTest.xls" As "C:UsersRonDestFolderTestNew.xls"
End Sub

Att

 
Postado : 07/01/2013 1:18 pm
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

Caros eu tentei usar as sugestões acima porém não dá certo, talvez seja minha limitação com VBA, segue abaixo o código que salva o arquivo atual em outro diretório, talvez o problema seja como mover o arquivo atual antes de salvar, ou no envento de abrir o arquivo ele faça esta movimentação antes de qualquer coisa, depois apenas salvar...se alguém puder me ajudar...

Att

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" & Cells(3, 10) & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True

 
Postado : 08/01/2013 6:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para mover ou deletar, o arquivo alvo não deve/pode estar aberto (em utilização), pois o sistema operacional impede essas ações.
Pela sua rotina aparentemente a mesma e "rodada" dentro do proprio arquivo.
Experimente executar em outro, com o arquivo alvo fechado.

 
Postado : 08/01/2013 8:11 am
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

Reinaldo é bem isso, deixa eu te perguntar uma coisa, nesta rotina que passei eu ja salvei o arquivo em outro diretório o nome do arquivo está numa célula do arquivo ativo, será que conseguimos dar um jeito de nesta rotina eu conseguir ler está célula para identificar o nome do arquivo e deste jeito apontava o diretório antigo...será que tem jeito??

Att

 
Postado : 08/01/2013 11:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não entendi? :oops: :?:

 
Postado : 08/01/2013 12:02 pm
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

sorry...deixa eu melhorar...
o usuário quando cria uma conta, o código pega o conteúdo da célula J4 do arquivo ativo e cria/salva como o arquivo no diretório 1 com o conteúdo da célula J4, o aprovador da conta vai abrir este arquivo em um outro momento e vai colocar alguns dados, quando este cara sair do arquivo o código que está no forum acima, salva o arquivo com o mesmo nome usando a mesma célula, porém em outro diretório 2. Minha dúvida era se conseguimos pegar o valor desta célula que seria o nome do arquivo porém do diretório 1 e deletar...
Desculpa minha limitação, espero que eu tenha conseguido explicar e tomara que tenha um jeito...

Valeu

 
Postado : 08/01/2013 12:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que entendi, isso ocorre em rede, certo?
E o caminho utilizado inicialmente é: "\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" ; ou pode ser outro??
A rotina que o "aprovador" utiliza para "salvar" é a mesma? Se sim o que altera/como se altera o caminho acima??
Quando ou qual seria o input para deletar o arquivo??

 
Postado : 08/01/2013 12:45 pm
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

Pelo que entendi, isso ocorre em rede, certo?
E o caminho utilizado inicialmente é: "\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" ; ou pode ser outro??
A rotina que o "aprovador" utiliza para "salvar" é a mesma? Se sim o que altera/como se altera o caminho acima??
Quando ou qual seria o input para deletar o arquivo??

é isso ai...isto ocorre em rede e o caminho acima ja é a rotina do aprovador...ele entrou no arquivo orginal "\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis1.Contas para incluir no ERPexemplo1.xlsm" (este nome está na celula j4) e vai colocar alguns dados e clicar em um botão que vai usar o caminho "\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" para salvar como em outro diretório...

mais uma vez valeu pela força

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

Experimente assim:

'Aqui a variavel tp irá (ou deverá) pegar o nome e caminho completo do arquivo inicial.
tp = ThisWorkbook.FullName
'aqui continua sua rotina para salvar o arquivo "aprovado" (creio eu)
ActiveWorkbook.SaveAs Filename:= _
"\BRGABS001G_DFIN_CTRL0236721Projetos_VBACadastro de contas contábeis2.Contas para incluir no ERP" & Cells(3, 10) & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
'aqui irá deletar o arquivo inicial
Kill t

p

 
Postado : 08/01/2013 2:16 pm
(@reinaldo_silva)
Posts: 38
Trusted Member
Topic starter
 

cara acho que estamos chegando la rsrs...fiz sua sugestão..deu um erro de "Run-time error 70" Permissão negada...

Será que ele está tentando deletar o arquivo atual?

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

Ao salvar como (SaveAs) automaticamente o excel "se posiciona" no novo arquivo, e considera o anterior fechado sem modificações. Então não deve ser isso ( a não ser que a instrução kill foi colocada antes do saveas). Tambem notei que faltou na minha proposta o nome correto da variavel, Voce a corrigiu ?? (onde está Kill t deve ser kill tp)

 
Postado : 08/01/2013 5:46 pm