Notifications
Clear all

Descompactar arquivos zip de uma pasta

3 Posts
3 Usuários
0 Reactions
1,480 Visualizações
(@robo8268)
Posts: 73
Trusted Member
Topic starter
 

Boa tarde pessoal, tudo bem?

Toda semana, eu baixo algumas bases de dados zipadas, ai eu tenho que descompactar cada uma delas (umas 20 mais ou menos...)

Eu busquei vários tópicos na internet, tanto ingles como em português, e não consegui encontrar nenhuma solução para o meu problema.

Eu preciso descompactar automaticamente todos os arquivos zip da pasta, só que quando eu rodo a macro, aparece o erro 91, na linha do namespace.

Alguém pode me ajudar?

(não tenho como upar o arquivo, pois aqui no meu trabalho é bloqueado)

Segue o código que estou usando:

Sub TestRun()
Dim strTargetPath As String
Dim Fname As String
Dim fso As Object
Dim folder As Object
Dim caminho As String
Dim arquivo As Object


Set fso = CreateObject("Scripting.FileSystemObject")

caminho = "C:UsersrodrwanDesktopTABELÕES2016Março"


Set folder = fso.GetFolder(caminho)
For Each arquivo In folder.Files
If Right(arquivo.Name, 3) = "zip" Then
Call UnZip(caminho, arquivo)
End If
Next
  '  Call UnZip("C:UsersNCDesktopVisheshTest", "C:UsersNCDesktopVisheshTestTestZipFile.Zip")
 
End Sub
 
 
 
Sub UnZip(caminho As String, arquivo As Variant)
 
    Dim oApp As Object
 
 
    Set oApp = CreateObject("Shell.Application")
 
    oApp.Namespace(caminho).CopyHere oApp.Namespace(arquivo).items
    
 
End Sub
 
Postado : 01/04/2016 11:32 am
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, robo8268.

Testei seu código e também retorno o mesmo erro, procurei na internet e encontrei o seguinte exemplo que esta funcionado, da uma olhada nesse link aqui http://www.rondebruin.nl/win/s7/win002.htm, acho que já te da um norte, para adaptar a sua necessidade.

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 01/04/2016 12:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se não me engano utilizando essa estrutura, o segundo argumento na função unzip deveria ser o local onde será descompactado o arquivo.
Experimente a chamada assim
Call UnZip(caminho & arquivo, caminho)

Eu utilizo uma função assim:

Private Function DescompactarArquivo(strOrigemArquivoCompactado As String, strDestinoArquivoDescompactado As String)
    With CreateObject("Shell.Application")
        .Namespace(Error$ & strDestinoArquivoDescompactado).CopyHere .Namespace(Error$ & strOrigemArquivoCompactado).items
    End With
End Function

e a chamada assim:

Call DescompactarArquivo(sPath & sZip(x), sPath)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/04/2016 12:42 pm