Ir ao conteúdo
  • Cadastre-se

Excel Mover arquivos de uma pasta para outra atraves do VBA


Ir à solução Resolvido por Basole,

Posts recomendados

Senhores, bom dia!

Tenho um planilha em Excel, onde a mesma faz atraves de uma macro a importacao de varios arquivos *.txt de um determinado diretorio.

porém o que eu gostaria de fazer é apos finalizar a importacao de todos os arquivos, fosse feita a movimentacao dos mesmos para uma pasta backup.

 

ex: \\nome_do_servidor\indicadores (diretorio de origem) onde fica todos os arquivos.

gostaria de mover todos arquivos *.txt desta pasta para \\nome_do_servidor\indicadores\backup

 

fazendo algumas pesquisas consegui chegar no codigo abaixo, porém não esta funcionando

 

Sub MoveArquivos()

  Dim fso 
  Dim PastaOrigem As String, PastaDestino As String
  
  PastaOrigem = "\\nome_do_servidor\INDICADORES"   
  PastaDestino = "\\nome_do_servidor\INDICADORES\backup" 
  
  Set fso = CreateObject("Scripting.FileSystemObject")
  
  On Error Resume Next
  
  If Not fso.FolderExists(PastaOrigem) Then  
    MsgBox PastaOrigem & " Não é uma pasta válida.", vbInformation, "Office, VBA e VSTO"  
  ElseIf Not fso.FolderExists(PastaDestino ) Then  
    MsgBox PastaDestino & " Não é uma pasta válida.", vbInformation, "Office, VBA e VSTO"  
  Else  
    fso.MoveFile (PastaOrigem & "\*.txt"), PastaDestino  
  End If
  
  If Err.Number = 53 Then MsgBox "Arquivo não encontrado."

End Sub

Link para o comentário
Compartilhar em outros sites

@Janilson Brito testei agora o seu codigo e pra mim está funcionando 100%

Pode ser que esteja acontecendo algum erro.  

Experimente "comentar" a linha: 'On Error Resume Next  => colocando uma aspas (') simples no inicio da linha. 

Desta forma se houver algum erro diferente do referenciado no codigo, apresentará.

 

Ou verifique se a pasta "backup" já foi criada.

 

 

Link para o comentário
Compartilhar em outros sites

Basole, obrigado pela dica, e desculpe a demora no novo teste.

Com a sua dica, consegui identificar que dava erro porque ja existia um arquivo com o mesmo nome no diretorio \backup, vou tentar ver como faço para que caso haja um arquivo com o mesmo nome, o mesmo seja substituido.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Fiz alterações no codigo, para verificar se o arquivo ja existe na pasta backup. 

Caso for verdadeiro, deleta o arquivo e move atualizando a pasta como o novo arquivo.

 

veja se atende

 

Sub MoveArquivos()

  Dim fso
  Dim PastaOrigem As String, PastaDestino As String
  Dim txtFile
  
  PastaOrigem = "\\nome_do_servidor\INDICADORES"
  PastaDestino = "\\nome_do_servidor\INDICADORES\backup"
  
  Set fso = CreateObject("Scripting.FileSystemObject")
  
    On Error Resume Next
  
  If Not fso.FolderExists(PastaOrigem) Then
    MsgBox PastaOrigem & " Não é uma pasta válida.", vbInformation, "Office, VBA e VSTO"
  ElseIf Not fso.FolderExists(PastaDestino) Then
    MsgBox PastaDestino & " Não é uma pasta válida.", vbInformation, "Office, VBA e VSTO"
  Else
                    
  For Each txtFile In fso.GetFolder(PastaOrigem).Files
      If fso.FileExists(PastaDestino & txtFile.Name) Then
      fso.deletefile PastaDestino & txtFile.Name, True
       txtFile.Move PastaDestino
      End If
Next
    'fso.MoveFile (PastaOrigem & "\*.txt"), PastaDestino
  End If
  
  If Err.Number = 53 Then MsgBox "Arquivo não encontrado."

End Sub

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...