Notifications
Clear all

Extrair Arquivos Zipados

16 Posts
2 Usuários
0 Reactions
2,240 Visualizações
(@michel008)
Posts: 9
Active Member
Topic starter
 

Pessoal,

Sou novo aqui no fórum.
Tenho uma macro baixa arquivos de um local específico, porém, os arquivos vem zipados do site onde os baixo.

Preciso descompactá-los mas não quero um novo código "do zero", quero apenas implementar a linha de código que extraia esses arquivos.

Abaixo as Subs que utilizo:

'Variável que armazena o destino dos arquivos
Public Mylocal As String

Private Declare Function URLDownloadToFile _
Lib "urlmon" Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

'Procedimento principal
Sub Download_CheckList_CVM()

'Variáveis para armazenar o nome da pasta e nome do arquivo, respectivamente
Dim pastaDadosCVM, arquivo As String
'Contador
Dim i As Integer
'Vetor de 4 posições que armazena os quatro arquivos que serão baixados
Dim arrArquivo(1 To 4) As String

'Contador inicia com 1 (primeira linha da planilha)
i = 1
'Repete instruções até que encontre uma célula vazia
Do While Cells(i, 1) <> ""
'Variável "pastaDadosCVM" recebe o nome que está na linha atual (1ª coluna)
pastaDadosCVM = Cells(i, 1)
'Variável "arquivo" recebe o nome que está na linha atual (2ª coluna)
arquivo = Cells(i, 2)

'Variável "Mylocal" recebe o diretório
Mylocal = "A:Adm Fiduciário20. Analise de Risco e Carteira - CRVDados ExternosDados CVM" & pastaDadosCVM & ""
'Chama a função "Download"
Call Download(Mylocal, arquivo)

arrArquivo(i) = arquivo
i = i + 1
Loop

Dim x As Integer

'Envia mensagem ao usuário informando que os arquivos foram baixados e, lista o nome dos mesmos
MsgBox "Download dos arquivos efetuado com sucesso! " & vbCrLf & vbCrLf & _
arrArquivo(1) & vbCrLf & arrArquivo(2) & vbCrLf & arrArquivo(3) & vbCrLf & arrArquivo(4)

End Sub

'Função que realiza o download dos arquivos
Sub Download(Mylocal, arquivo)

'Tratamento de erro
On Error GoTo Err

'Variável auxiliar
Dim Auxiliar As Long
'Recebe a URL origem e caminho, respectivamente
Dim URL As String, CaminhoLocal As String

'Endereço do website onde estão os arquivos + nome dos arquivos
URL = " http://sistemas.cvm.gov.br/cadastro/" & arquivo

'Chama função para criar pastas
Call CriarPasta(Mylocal)

'Variável "CaminhoLocal" recebe o diretório de destino e nomes dos arquivos
CaminhoLocal = Mylocal + arquivo
'
Auxiliar = URLDownloadToFile(0, URL, CaminhoLocal, 0, 0)

Exit Sub

Err: MsgBox "Erro no download do arquivo"

End Sub
'Função para criar pasta
Sub CriarPasta(Mylocal)

'Criação de objeto para criar pasta
Dim fso As Object, NomePasta
Set fso = CreateObject("Scripting.FileSystemObject")
'Variáveis para guardar a data, ano, mês e dia
Dim data, ano, mes, dia As String

'Variável "data" recece o valor da célula C2
data = Range("C2")
'Variável "ano" recece apenas o ano da data atual
ano = Year(data)
'Variável "mes" recece apenas o mês da data atual
mes = Month(data)
'Variável "dia" recece apenas o dia da data atual
dia = Day(data)

'Define o formato de ano e dia com 2 dígitos
mes = Format(mes, "00")
dia = Format(dia, "00")

'Nomenclatura da pasta. Ex: 2015_04_22
NomePasta = ano & "_" & mes & "_" & dia

'
Mylocal = Mylocal & NomePasta & ""

If Not fso.FolderExists(Mylocal) Then
fso.CreateFolder (Mylocal)
End If

End Sub

 
Postado : 20/05/2015 8:32 am
(@michel008)
Posts: 9
Active Member
Topic starter
 

Mauro,

Muitíssimo obrigado cara!!!!
Baixei o ".zip" que você enviou, segui as instruções e deu tudo certo!

Vc é fera! Valeuuu :D :D

Att.
Michel

 
Postado : 25/05/2015 9:09 am
Página 2 / 2