Notifications
Clear all

Erro em tempo de execução `75´: Erro de acesso a caminho/arq

10 Posts
3 Usuários
0 Reactions
3,100 Visualizações
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Boa tarde amigos,
estou com um problema que ainda não consegui desenrolar. Tenho uma rotina que é para copiar arquivos de uma pasta para outra conforme código abaixo. No entanto ao executar a rotina, que está rodando corretamente ao meu ver, apresenta o erro abaixo:

Private Sub CommandButton1_Click()
Dim colaborador As String
pastaorigem = Sheets("Contra_Cheques").Range("f2").Value
pastadestino = Sheets("Contra_Cheques").Range("g2").Value
ultimalinha = Sheets("Arquivos").Cells(Cells.Rows.Count, 1).End(xlUp).Row

For x = 2 To ultimalinha
    arquivo = pastaorigem & Sheets("Arquivos").Range("A" & x).Value
    colaborador = Sheets("Arquivos").Range("C" & x).Value
    destino = pastadestino & colaborador
    FileCopy arquivo, destino
Next x
End Sub

Private Sub CommandButton2_Click()
Sheets("Contra_Cheques").Range("f2").Value = pastaorigem.Value
End Sub

Private Sub CommandButton3_Click()
Sheets("Contra_Cheques").Range("g2").Value = pastadestino.Value
End Sub

Private Sub UserForm_initialize()
Sheets("Contra_Cheques").Select
pastaorigem.Value = Range("f2").Value
pastadestino.Value = Range("g2").Value
Call ChamaListaArquivos
End Sub

Sub ChamaListaArquivos()
ListaArquivos UserForm1.pastaorigem.Value
End Sub
Sub ListaArquivos(NomeCaminho)
Set Objeto = New Scripting.FileSystemObject
Set Caminho = Objeto.GetFolder(pastaorigem.Value)
Sheets("Arquivos").Select
Range("A2:B" & Range("A1").End(xlDown).Row).ClearContents
Linha = 2

For Each myFile In Caminho.Files
    Range("A" & Linha).Value = myFile.Name
    Range("B" & Linha).Value = myFile.DateLastModified
    Linha = Linha + 1
Next
End Sub

Erro em tempo de execução `75´:
Erro de acesso a caminho/arquivo

Alguém tem alguma dica para auxiliar.

 
Postado : 27/11/2013 3:10 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Allex,

Somente com esse trecho do código fica difícil depurar e saber o que está ocorrendo. Esse erro, geralmente, ocorre quando o arquivo de destino ou de origem está com um nome errado, contém caracteres que não são permitidos em nomes de arquivos ou quando o VBA não consegue achar os caminhos especificados.

Você mesmo pode rodar no modo de depuração, ir colocando o mouse em cima de cada linha destacada de amarelo, nas variáveis e ver se tudo está correto de acordo com o que você projetou para ocorrer.

Para fazer a depuração. coloque o cursor em cima de uma linha inicial, por exemplo, na linha pastaorigem = Sheets("Contra_Cheques").Range("f2").Value, pressione F9 e depois vá andando passo a passo pelas linhas de código com F8.

 
Postado : 27/11/2013 3:39 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Wagner, este é todo meu código. Já verifiquei os endereços e estão corretos. Acredito que seja algo relacionado a permissões.

 
Postado : 27/11/2013 5:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Chook, acredito que este não é todo o código, veja se copiar os codigos que postou e colocar em um arquivo novo tentendo recriar para verificar o erro, temos a mensagem de erro logo no inicio do Userfom_Initialize na Variavel pastaorigem como não definida, então você deve ter em algum lugar a Declaração desta Variável.

Você chegou a testar conforme o Wagner disse, utilizando a tecla F8 para ver que valor está sendo armazendao ?
Como é a digitação do caminho em "F2" ?

Este erro é como o Wagner postou, ou é definição errada no Caminho ou algum caracter inválido.

[]s

 
Postado : 27/11/2013 5:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente assim:
De:
Set Caminho = Objeto.GetFolder(pastaorigem.Value)
Para
Set Caminho = Objeto.GetFolder(NomeCaminho)
ou
Set Set Caminho = Objeto.GetFolder(Userform1.pastaorigem.Value)

 
Postado : 27/11/2013 9:03 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Boa noite Reinaldo,
Apresenta o mesmo erro nas duas opções. Ainda acredito que está associado a permissões de pastas.

 
Postado : 03/12/2013 4:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Testei somente o trecho conforme abaixo e funcionou sem problemas (note que mudei apenas na referencia ao userform1,e nome da palnilha):

Sub ChamaListaArquivos()
ListaArquivos "D:ReinaldoDownloads" 'UserForm1.pastaorigem.Value
End Sub

Sub ListaArquivos(NomeCaminho)
Set Objeto = New Scripting.FileSystemObject
Set Caminho = Objeto.GetFolder(NomeCaminho)
Sheets("plan1").Select
Range("A2:B" & Range("A1").End(xlDown).Row).ClearContents
Linha = 2

For Each myFile In Caminho.Files
    Range("A" & Linha).Value = myFile.Name
    Range("B" & Linha).Value = myFile.DateLastModified
    Linha = Linha + 1
Next
End Sub
 
Postado : 03/12/2013 8:20 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Bom dia Reinaldo,
Segue minha planilha para você testar aí em sua máquina,

Abraços!

 
Postado : 04/12/2013 8:58 am
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Entendi, o problema e que tenho que informar o destino com o nome do arquivo. Funcionou!! Grato a todos que auxiliaram na solução!!

 
Postado : 04/12/2013 9:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue com modificações, tentei seguir a lógica do que entendi; veja se atende:

 
Postado : 04/12/2013 10:05 am