Ir ao conteúdo

Excel Mover arquivos de uma pasta para outra atraves do VBA


Ir à solução Resolvido por Basole,

Posts recomendados

Postado

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

Postado

@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.

 

 

Postado

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
  • Solução
Postado

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

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!