felipen_,
Bom dia!
Para que acumule todos os arquivos em um único que estão sem a parte na descrição FINALIZADO, basta alterar a rotina AbirArquivos desse último arquivo que lhe encaminhei (Arquivo Versão para acumular no BD 2.zip) por este abaixo:
Sub AbrirArquivos()
'************************************************
'NECESSITA DA REFERÊNCIA Microsoft Scripting Runtime
'*********************************************
'Para inserir a referência, vá ao editor do VBA com ALT + F11
'Acesse o meu Ferramentas/Referências/Microsoft Scripting Runtime/OK
'Declaração de variáveis
Dim fso As Scripting.FileSystemObject
Dim fld As Scripting.Folder
Dim fl As Scripting.File
Dim strCaminho As String
Dim PosiçãoPonto As Long
strCaminho = ActiveWorkbook.Path & ""
'Aqui é criado o objeto que comunica com as pastas do computador
Set fso = CreateObject("Scripting.FileSystemObject")
'Esse objeto executa um método do FileSystemObject
'para buscar atribuir à variável fld uma pasta
Set fld = fso.GetFolder(strCaminho)
'Loop em cada elemento (ou seja, arquivo) do caminho desejado:
For Each fl In fld.Files
'Verifica se é um arquivo com extensão xlsx
'ATENÇÂO: No seu código, você pode apagar, na linha abaixo, essa parte: (And Right(fl.Name, 10) <> "lha 1.xlsx" And Right(fl.Name, 10) <> "lha 2.xlsx") _
isso é porque o meu excel estava com bug pegando dois arquivos inexistentes na pasta
If Right(fl.Name, 4) = "xlsx" And Right(fl.Name, 10) <> "lha 1.xlsx" And Right(fl.Name, 10) <> "lha 2.xlsx" Then
PosiçãoPonto = InStrRev(fl.Name, ".", , vbTextCompare) + 1
If Mid(fl.Name, PosiçãoPonto - 11, 10) <> "Finalizado" Or Mid(fl.Name, PosiçãoPonto - 11, 10) <> "FINALIZADO" Then
Workbooks.Open strCaminho & (fl.Name)
'Armazena na variável Global o nome do arquivo
NomeArquivo = fl.Name
'Chamar a rotina que copia os arquivos
Call CopiarArquivo
End If
End If
Next
End Sub
Para que junte todos os arquivos que estão com o termo FINALIZADO na descrição, basta alterar a mesma rotina, em um outro arquivo igual ao Arquivo Versão para acumular no BD 2.zip a rotina abaixo:
Sub AbrirArquivos()
'*********************************************
'NECESSITA DA REFERÊNCIA Microsoft Scripting Runtime
'************************************************
'Para inserir a referência, vá ao editor do VBA com ALT + F11
'Acesse o meu Ferramentas/Referências/Microsoft Scripting Runtime/OK
'Declaração de variáveis
Dim fso As Scripting.FileSystemObject
Dim fld As Scripting.Folder
Dim fl As Scripting.File
Dim strCaminho As String
Dim PosiçãoPonto As Long
strCaminho = ActiveWorkbook.Path & ""
'Aqui é criado o objeto que comunica com as pastas do computador
Set fso = CreateObject("Scripting.FileSystemObject")
'Esse objeto executa um método do FileSystemObject
'para buscar atribuir à variável fld uma pasta
Set fld = fso.GetFolder(strCaminho)
'Loop em cada elemento (ou seja, arquivo) do caminho desejado:
For Each fl In fld.Files
'Verifica se é um arquivo com extensão xlsx
'ATENÇÂO: No seu código, você pode apagar, na linha abaixo, essa parte: (And Right(fl.Name, 10) <> "lha 1.xlsx" And Right(fl.Name, 10) <> "lha 2.xlsx") _
isso é porque o meu excel estava com bug pegando dois arquivos inexistentes na pasta
If Right(fl.Name, 4) = "xlsx" And Right(fl.Name, 10) <> "lha 1.xlsx" And Right(fl.Name, 10) <> "lha 2.xlsx" Then
PosiçãoPonto = InStrRev(fl.Name, ".", , vbTextCompare) + 1
If Mid(fl.Name, PosiçãoPonto - 11, 10) = "Finalizado" Or Mid(fl.Name, PosiçãoPonto - 11, 10) = "FINALIZADO" Then
Workbooks.Open strCaminho & (fl.Name)
'Armazena na variável Global o nome do arquivo
NomeArquivo = fl.Name
'Chamar a rotina que copia os arquivos
Call CopiarArquivo
End If
End If
Next
End Sub
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
Postado : 21/06/2018 7:23 am