Pessoal, boa tarde.
Estou tentando desenvolver um vba para realizar a procura de PDFs, copiar esse arquivo e colar em outra pasta.
Eu já consegui fazer isso, porém não estou conseguindo resolver o seguinte problema:
- Pegar apenas o PDF que CONTER aquele número de nota fiscal apenas.
Exemplo, no meu código eu preciso pegar a NF com numeração 341, mas a macro acaba trazendo 10 NFs, exemplo:
341
3412
3414
3412
Ou seja, ele encontra tudo que tiver o "341" e trás. O mais engraçado é que se você forçar o "341" entre aspas na parte de "pesquisa" do próprio Windows, ele pega apenas a primeira NF (341). Já tentei forçar o próprio VBA colocar as Aspas, mas não funciona...
Alguém consegue me ajudar? Segue abaixo o código até o momento.
Const SUBPASTA_2021 As String = "C:\Users\erick.l.santiago\Downloads"
Sub ListaPastas(Pasta As Object, Celula As Range)
Dim Arquivo As Object
Dim SubPasta As Object
For Each Arquivo In Pasta.Files
If InStr(Arquivo.Name, Celula.Offset(0, 1)) <> 0 Then
'MsgBox InStr(Arquivo.Name, Celula.Offset(0, 1))
If InStr(Arquivo.Name, Celula) <> 0 Then
'MsgBox Arquivo.Name
'If Arquivo.Name Like Celula Then
Call Arquivo.Copy(ThisWorkbook.Path & _
"\teste\")
Celula.Offset(0, 3) = "Encontrado"
End If
'End If
' Else
'Celula.Offset(0, 3) = "Não encontrado"
End If
Next Arquivo
For Each SubPasta In Pasta.SubFolders
Call ListaPastas(SubPasta, Celula)
Next SubPasta
End Sub
Sub Macro()
Dim Fso As Object
Dim Celula As Range
Dim conteudo As String
Dim teste As String
Dim Tempo As Double
Tempo = Now()
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Celula = [A2]
While Celula <> ""
'conteudo = Celula
'teste = """" & conteudo & """"
'teste = conteudo & ".txt"
'Celula.Value = teste
Call ListaPastas( _
Fso.GetFolder(SUBPASTA_2021), Celula)
Set Celula = Celula.Offset(1)
Wend
MsgBox "A macro foi executada com sucesso!", vbOKOnly
MsgBox "O tempo de execução foi " & Now() - Tempo
End Sub
Postado : 01/02/2022 12:42 pm