Galera, bom dia
alguém para ajudar a seguinte demanda?
1) entrar numa pasta na rede;
2) Abrir cada arquivo da pasta existente na extensão .xls;
3) abrir aba “Query”
4) verificar coluna C, e filtrar apenas células que contém o número “2”, após isso, filtrar coluna D e deixar apenas células que contém o numero “4”. Copiar todo esses resultados
5) Abrir planilha Banco de Dados, selecionar aba “BD”, localizar ultima célula preenchida e pular uma linha, aí sim, colar o texto copiado.
Ja tentei aqui atraves desse codigo aqui, mas ele só consegue trazer os dados de um arquivo da pasta.
Sub consolidaBD()
Dim sPath As String, sName As String, fName As String
Dim r As Long, rTemp As Long
Dim shPadrao As Worksheet
'Para a macro executar mais rápido!
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
'A planilha onde serão colados os dados
Set shPadrao = Sheets("BD")
'O caminho onde as planilhas que serão lidas estão
sPath = "C:UsersmattheusbelanDesktopDemanda Osiel20172-FEBRUARY"
'Descubro o nome do primeiro arquivo a ser aberto
sName = Dir(sPath & "*.xls*")
'Faço o loop que le todos os arquivos
Do While sName <> ""
'Acha a ultima linha utilizada na planilha onde serao colados os dados
r = shPadrao.Cells(Rows.Count, "A").End(xlUp).Row
'O caminho + o nome do arquivo a ser aberto
fName = sPath & sName
'Abro o workbook a ser lido
Workbooks.Open Filename:=fName, UpdateLinks:=False
'Descubro sua quantas linhas ele possui
rTemp = ActiveWorkbook.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
'Colo na planilha principal
ActiveWorkbook.ActiveSheet.Range("A1:J" & rTemp).Copy shPadrao.Range("A" & r + 1)
Cells(Rows.Count, "A").End(xlUp).Select
Selection.Delete Shift:=xlUp
'Fecho o arquivo já lido
ActiveWorkbook.Close SaveChanges:=False
ScapeB:
'Atualizo a variavel com funcao DIR() que acha o proximo arquivo nao processado
sName = Dir()
Loop
On Error GoTo 0
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Muito obrigado Galera!!!
abraço
Postado : 22/06/2017 8:32 am