Notifications
Clear all

Localizar e Importar Arquivo com data mais atual

7 Posts
2 Usuários
0 Reactions
1,529 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

vou aproveitar o assunto e tentar usar a ideia, mas no meu caso é um pouco diferente.

eu pego tudo da mesma pasta e manualmente, mas...
bem, normalmente os arquivos estão compactados e salvos como
A.zip
B.zip
C.zip
A(1).zip
A(2).zip

B(1).zip
B(2).zip

C(1).zip
C(2).zip

o padrão programa salvar arquivos de nome igual,
os de maior valor numérico deveriam ser considerados como os mais novos certo?
mas no meu caso é mais complicado
As vezes me mandam arquivos desatualizados depois que alguém me mandou um já atualizado
E pior, mais desatualizado do que o meu principal, e eu tenho que ficar olhando para não perder os dados que já tenho

Teria como abri o arquivo, verificar coluna B, ultima linha, e comparar com a ultima dada que eu tenho,
e se for menor cancelar, e pular pro próximo arquivo.
se for maior, procurar data igual a minha ultima e copiar uma linha abaixo até a ultima para fazer a importação?

 
Postado : 25/03/2014 6:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edcronos, separei sua questão para um novo tópico para não misturarmos os assuntos.

Quanto a sua questão poderia estar listando ou fazendo a verificação pelo atributo de datas dos arquivos para saber qual a data maior.
De uma olhada no link abaixo e veja se ajuda.
Gerar Planilha com Árvore de Arquivos com Hyperlink
http://www.ambienteoffice.com.br/excel/ ... _e_pastas/

[]s

 
Postado : 25/03/2014 7:44 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

bem, era localizar e importar mesmo,

E a data do arquivo é atual oq muda é a informação interna mesmo.
planilha atual e conteúdo, antigo

a macro pra comparar as datas eu sei fazer, sei que nas planilhas as datas estão sempre na coluna b e no meu é numa variável CData

oq eu não sei é como localizar o arquivo pelo nome, abrir
para verificar e importar

pode até excluir pq não é importante para mim,

é mais facil apenas le aquele topico lá e tentar adaptar para o meu uso, ninguem responde aos meus mesmo

Mas obrigado pelo link

 
Postado : 26/03/2014 12:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se lhe auxilia

Sub AbreArquivo()
Dim OldName As String, NewName As String, cSheet As String
Dim sDir As String, sPath As String, Msg As String
Dim rw As Long, i As Long
'Guarda o nome do Arquivo ativo, o que contem esta rotina
OldName = ThisWorkbook.Name
'Acha o numero da ultima coluna com valores (da linha 1)
'rw = Cells(1, Cells.Columns.Count).End(xlToLeft).Column 'creio que não será utilizado por ti
'Guarda o nome da planilha ativa
cSheet = ActiveSheet.Name
'Determina o caminho a ser utilizado (neste caso mesmo diretorio deste arquivo) altere para o seu caminho
sPath = ThisWorkbook.Path

'Acrescenta, se necessario a barra na string do caminho
If Right(sPath, 1) <> "" Then sPath = sPath & ""
'Altera, temporariamente, o diretorio de trabaho, para o determinado na string acima
ChDir sPath
sDir = Dir("*.xls?") 'informe aqui o nome do arquivo , no exemplo está "procurando" qualquer arquivo excel
'Executa enquanto houver arquivo xls no diretorio
Do While sDir <> ""
    If sDir <> OldName Or sdr <> "" Then 'caso o arquivo de trabalho esteja no diretorio, vaio pro proximo
        Application.DisplayAlerts = False
        Application.ScreenUpdating = False
        Workbooks.Open Filename:=sDir, UpdateLinks:=3 ' abre o arquivo encontrado
        'Coloque aqui sua rotina de comparação
        
        Workbooks(sDir).Close SaveChanges:=False 'fecha o arquivo(que foi aberto acima) sem salvar
        sDir = Dir 'passa para o proximo arquivo do diretorio
    Else
        Exit Sub
    End If
Loop
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
 
Postado : 26/03/2014 6:24 am
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Ajuda sim obrigado...
mas... existe alguma rotina para abrir um arquivo ZIP e descompactar a planilha ?
assim eu poderia criar uma macro para le e comparar a planilha já aberta.

Como expliquei acima,
todas são compactadas em zip com o mesmo nome da planilha interna
são em torno de 10 planilhas diferentes.

Mas como falei, as planilhas vem repetidas de lugares diferentes, as vezes as mais novas tem conteúdo desatualizado o que complica.
as 10 tem conteúdo e estruturas diferentes uma da outra , mas respeitam os nomes e posições

por ser um projeto próprio e praticamente apenas uma ideia que no momento apenas funciona na imaginação, atualizo os dados com menos frequência.
E apesar de minha planilha já fazer um monte de coisa, ainda não está nada perto do que eu imagino.

 
Postado : 26/03/2014 9:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para descompactar seria algo assim

Sub UnZipando()

ChDir ThisWorkbook.Path    'Altera o diretorio de "trabalho" para o do arquivo

'Sintaxe para winRar

arqcomp = ThisWorkbook.Path & "distancias.zip"	'Aqui nome do arquivo, deve ser sem espaços

Shell "C:Arquivos de programasWinRARWinRAR.exe e " & arqcomp, vbMinimizedFocus		
End Sub
 
Postado : 26/03/2014 9:43 am
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

vou testar aqui, só tnho que entender como funciona para adaptar.
no caso ela abre a planilha diretamente ou descompacta na pasta?

 
Postado : 26/03/2014 5:07 pm