Ir ao conteúdo

Excel Copiar Arquivos listados no Excel para outro local


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Olá a todos, estou procurando um programa que execute a seguinte função:

 

Peque uma lista (criada em EXCEL) com os nomes dos arquivos e realize a função copiar e colar.

Configurando o local onde os arquivos estão (ex: C:\Program Files\COPIAR) e colar onde eu desejar (ex: D:\Program Files\COLAR)

 

EX:

Copiar arquivo nome arquivo1 em (C:\Program Files\COPIAR) e colar arquivo1 em (D:\Program Files\COLAR)

Copiar arquivo nome arquivo2 em (C:\Program Files\COPIAR) e colar arquivo1 em (D:\Program Files\COLAR)

Copiar arquivo nome arquivoaa1 em (C:\Program Files\COPIAR) e colar arquivoaa1 em (D:\Program Files\COLAR)

 

Agradeço a todos.

Postado

Boa tarde, ricardo_br.

 

A fonte sempre será a mesma, o destino sempre irá mudar e sempre será uma pasta em branco, não havendo problema com substituir.

Postado

Assim, eu vou criar uma pasta hoje (Ex arquivos 15-02-22) e então quero que o programa pegue um arquivo "chamado" documento1.PDF na pasta (C:\Program Files\COPIAR) e colar o  arquivo documento1.PDF em (D:\Program Files\arquivos 15-02-22).

Amanhã quero que o programa faça a mesma coisa só que ele cole em outra pasta ex: D:\Program Files\arquivos 16-02-22).

Postado

@ricardo_br Crie um documento de texto, edite ele com o notepad, escreva:

Copy C:\Program Files\COPIAR\*.* D:\Program Files\COLAR\

 

Salve o arquivo com o nome que desejar, mas mude a extensão para .BAT ao invés de TXT. Feito isso clique duplo e ele vai fazer exatamente o que você falou que quer que faça.

 

Se quer que sempre sobreponha o conteúdo do arquivo de destino, então acrescente o comando /Y depois do texto todo acima.

 

 

O que entendo que você quer fazer é meio que um backup. Tem programas que fazem isso automaticamente. Recomendo o Google Drive e o macrium reflect

Postado

Veja se é isso:

 

JQJc6x2.gif

 

Você salva o código abaixo no bloco de notas e salva com o nome que quiser mais com extensão *.bat. Ai você muda essas partes conforme suas necessidades:

 

:: Informe aqui a fonte dos arquivos:
set Fonte=c:\Fonte

:: Informe aqui a pasta base de Destino:
set Destino=c:\Destino

:: Informe aqui onde está a tabela em formato csv
set Tabela=c:\Tabela.csv

 

A tabela deverá estar no formato csv basta salvar sua tabela nesse formato no excel. Para fazer isso todos os dias de forma automática basta colocar para executar o arquivo bat todos os dias pelo agendador de tarefas...

 

@echo off

:: Informe aqui a fonte dos arquivos:
set Fonte=Fonte

:: Informe aqui a pasta base de Destino:
set Destino=Destino

:: Informe aqui onde está a tabela em formato csv
set Tabela=Tabela.csv

set PastaDoDia=%Date% - %Time:~0,8%
set PastaDoDia=%PastaDoDia:/=-%
set PastaDoDia=%PastaDoDia::=-%

if /i not exist "%Destino%\%PastaDoDia%\" md "%Destino%\%PastaDoDia%\"

For /f "usebackq Delims=" %%a in ("%Tabela%") do copy /y "%Fonte%\%%a" "%Destino%\%PastaDoDia%\"

 

  • Curtir 1
  • Obrigado 1
Postado

@jrjuniorjr O VBA tem uma sub nativa para isso, é a FileCopy,

 

Sub FileCopy(Source As String, Destination As String)

 

No Excel só terá que passar os argumentos de origem e destino e no caso de uma lista de nomes faça um loop para copiar cada um.

 

Postado

Estou testando aqui, porém não consegui fazer o bloco de notas ficar em .bat. e também gostaria que verificasse se esta correto a programação.

No Excel esta a lista com os nome de arquivos.

Capturar 1.PNG

Capturar2.PNG

Postado

@jrjuniorjr Eu reparei que você não tem as extensões de arquivos habilitadas na visualização do explorer se habilitar acho que facilita as coisas.

 

no caso você só colocou o nome da tabela Teste mais tem que colocar a extensão também:

teste.csv

 

Essa lista de arquivos que você mostrou eles tem extensão algo como "60101386-00" --> "60101386-00.txt" ou não tem extensão?

  • Obrigado 1
Postado

os arquivos são "60101386-00" em pdf e DWG..... e existe a possiblidade do arquivo as vezes esta na lista em excel e ele não existe em pdf e dwg.

 

habilitei as extensões obrigado.

Capturar.PNG

executei o .bat e criou apenas as pasta com as datas. (OBS. não é um backup não existe a necessidade de ter as datas) apenas de pegar os arquivos em PDF e DWG da pasta COPIAR "60101386-00" e colar na pasta COLAR com a lista dos nomes do arquivo em Excel "teste.csv"

333.PNG

Postado

Ah tá, agora entendi (eu acho) você quer que verifica os arquivos no excel, se na fonte existir o arquivo ex: 60101386-00.pdf ou 60101386-00.dwg ele deverá ser copiado para o destino é isso?

  • Curtir 1
Postado

Isso ai quero copiar os arquivo (60101386-00.pdf ou 60101386-00.dwg) "da lista do Excel com os nome do arquivo" para uma pasta criada... (lembrando que a pasta de origem nunca ira mudar).

Em outras palavras, no Excel terá o nome do arquivo (Ex:60101386-00.pdf e 60202000-00.pdf) ao clicar no macro eu quero o os arquivos listados no Excel, sejam copiados e colados na pasta que eu criar, somente isso, ou seja  os arquivos 60101386-00.pdf ou 60101386-00.dwg e 60202000-00.pdf e 60202000-00.dwg irão para pasta que eu selecionar.

Postado

Veja se funciona agora:

 

@echo off

:: Informe aqui a fonte dos arquivos:
set Fonte=Fonte

:: Informe aqui a pasta base de Destino:
set Destino=Destino

:: Informe aqui onde está a tabela em formato csv
set Tabela=Tabela.csv

set PastaDoDia=%Date% - %Time:~0,8%
set PastaDoDia=%PastaDoDia:/=-%
set PastaDoDia=%PastaDoDia::=-%

if /i not exist "%Destino%\%PastaDoDia%\" md "%Destino%\%PastaDoDia%\"

For /f "usebackq Delims=" %%a in ("%Tabela%") do (
                                                  IF /i exist "%Fonte%\%%~na.pdf" copy /y "%Fonte%\%%~na.pdf" "%Destino%\%PastaDoDia%\"
                                                  IF /i exist "%Fonte%\%%~na.dwg" copy /y "%Fonte%\%%~na.dwg" "%Destino%\%PastaDoDia%\"
                                                 )

 

  • Curtir 1
  • Obrigado 1
Postado

Obrigado Ricardo,

 

Funcionou muito bem.

Queria ver com você se, caso ele não ache o arquivo no Excel ele poderia dar alguma mensagem?

 Muito  obrigado mesmo

Postado

Como assim se não achar? Ele copia todos os arquivos do excel que existam na fonte e tenham extensão pdf ou dwg para o destino. Você quer dizer se algum arquivo do excel não existir na fonte nem com extensão pdf nem dwg?

  • Solução
Postado

Veja se é isso:

 

@echo off

:: Informe aqui a fonte dos arquivos:
set Fonte=Fonte

:: Informe aqui a pasta base de Destino:
set Destino=Destino

:: Informe aqui onde está a tabela em formato csv
set Tabela=Tabela.csv

set PastaDoDia=%Date% - %Time:~0,8%
set PastaDoDia=%PastaDoDia:/=-%
set PastaDoDia=%PastaDoDia::=-%

if /i not exist "%Destino%\%PastaDoDia%\" md "%Destino%\%PastaDoDia%\"

IF /i exist "%temp%\ArquivosNaoExistem.txt" del /q "%temp%\ArquivosNaoExistem.txt"

echo Arquivos que não existem na fonte:>>"%temp%\ArquivosNaoExistem.txt"
echo.>>"%temp%\ArquivosNaoExistem.txt"

For /f "usebackq Delims=" %%a in ("%Tabela%") do (
                                                  IF /i exist "%Fonte%\%%~na.pdf" copy /y "%Fonte%\%%~na.pdf" "%Destino%\%PastaDoDia%\"
                                                  IF /i exist "%Fonte%\%%~na.dwg" copy /y "%Fonte%\%%~na.dwg" "%Destino%\%PastaDoDia%\"
                                                  IF /i Not Exist "%Fonte%\%%~na.pdf" (IF /i not exist "%Fonte%\%%~na.dwg" echo %%a >>"%temp%\ArquivosNaoExistem.txt")
                                                 )
start notepad.exe "%temp%\ArquivosNaoExistem.txt"

 

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