Boa Tarde Familia,
Primeiramente gostaria de agradecer a todos que responderam,
especialmente ao EdsonBR, com essa belíssima explicação sobre o método find
peço desculpas pela demora,
Não sou crack em VBA então algumas funções não consigo aplicar
Gotartia de uma função que quando encontrar na coluna [A] .find("DESPESAS CORRENTES") ele procurasse .find("APLICACOES DIRETAS")
porq eu preciso que classifica o primeiro .find("DESPESAS CORRENTES") para acha .find("APLICACOES DIRETAS")
por causa da segunda consulta que vai te em comum o nome "APLICACOES DIRETAS"
o que diferencia uma APLICACOES DIRETAS da outra APLICACOES DIRETAS e o primeiro .find um sera ("DESPESAS CORRENTES") e o outro ("DESPESAS CORRENTES A ANULAR")
vitorhsh acredito que se expor melhor sobre o resultado final desejado.
Exp 1º consulta
.find("DESPESAS CORRENTES") encontrou vai para .find("APLICACOES DIRETAS") retorna o valor
2º consulta
.find("DESPESAS CORRENTES A ANULAR") encontrou vai para .find("APLICACOES DIRETAS") retorna o valor
qual método posso utiliza pra fazer esse busca ?
eu fiz um GATO no Cod. funciona mais com % de erro mt grande
fiz o seguinte descartei o primeiro .find("DESPESAS CORRENTES") e vou direto na "APLICACOES DIRETAS"
depois que a rotina faz o procedimento pra 1º consulta apago a linha da primeira consulta "APLICACOES DIRETAS" e vou
para 2º consulta. porque apaga os dados? porq se nao ele retorna o valor da primeira consulta na segunda pois ambos tem em comum "APLICACOES DIRETAS"
a unica coisa que diferencia uma aplicação direta da outra e o ("DESPESAS CORRENTES") e a outra e ("DESPESAS CORRENTES A ANULAR")
Segue o cod que estou utilizando
Sub Importa_PDF_Start()
Application.DisplayAlerts = False
Dim AdobeApp As String
Dim AdobeFile As String
Dim StartAdobe
' ALTERE O CAMINHO (DIRETORIO) DO SEU ADOBE READER SE NECESSARIO
AdobeApp = "C:Program Files (x86)AdobeReader 11.0ReaderAcroRd32.exe"
AdobeFile = ThisWorkbook.Path & "FOLHA ARQUIVO NACIONAL DDP.pdf"
StartAdobe = VBA.Shell("" & AdobeApp & " " & """" & AdobeFile & """" & "", 1)
Application.OnTime Now + TimeValue("00:00:04"), "FirstStep"
End Sub
Private Sub FirstStep()
Application.DisplayAlerts = False
SendKeys ("^a")
SendKeys ("^c")
Application.OnTime Now + TimeValue("00:00:04"), "SecondStep"
End Sub
Private Sub SecondStep()
Application.DisplayAlerts = False
Plan2.Activate
Range("A1").Select
Dim ws As Worksheet
SendKeys ("^v")
'AppActivate "Microsoft Excel"
On Error Resume Next
AppActivate Application.Caption
On Error GoTo 0
'AppActivate "Excel"
With ThisWorkbook
.Activate
If .Sheets.Count < 2 Then
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
End If
.Sheets(2).Activate
End With
Range("A1").Activate
SendKeys ("^v")
Application.OnTime Now + TimeValue("00:00:03"), "ThirdStep"
End Sub
Private Sub ThirdStep()
Application.DisplayAlerts = False
Dim rng As Range
Dim rng2 As Range
Dim rng3 As Range
Dim rng4 As Range
Dim rng5 As Range
Dim LR!
Dim LR1!
Dim rng8
Plan1.Activate
With Plan2
LR = .Cells(.Rows.Count, 1).End(xlUp).Row
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
'Plan2.Activate
' For rng = LR To .Range("A" & LR).Find("APLICACOES DIRETAS").Find("APLICACOES DIRETAS")
For Each rng In .Range("A1:A" & LR).Find("APLICACOES DIRETAS") '.Find("APLICACOES DIRETAS")
With Plan1
' CNPJ :
If rng Like "CNPJ :*" Then
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
.Range("A" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, 7, 19))
End If
' CEP :
If rng.Value2 Like "*APLICACOES DIRETAS*" Then
.Range("b5,b5" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, VBA.InStr(rng.Value2, "APLICACOES DIRETAS") + 0, 19))
End If
If rng.Value2 Like "*APLICACOES DIRETAS*" Then
.Range("C5,C5" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, VBA.InStr(rng.Value2, "APLICACOES DIRETAS") + 19, 20))
End If
End With
Plan2.Activate
Range("A3:A20").ClearContents
For Each rng2 In .Range("A2:B100" & LR).Find("*APLICACOES DIRETAS*")
With Plan1
' CEP :
If rng2.Value2 Like "*APLICACOES DIRETAS*" Then
.Range("d5,d5" & LR1).Value = VBA.Trim(VBA.Mid(rng2.Value2, VBA.InStr(rng2.Value2, "APLICACOES DIRETAS") + 0, 18))
End If
If rng2.Value2 Like "*APLICACOES DIRETAS*" Then
.Range("e5,e5" & LR1).Value = VBA.Trim(VBA.Mid(rng2.Value2, VBA.InStr(rng2.Value2, "APLICACOES DIRETAS") + 19, 20))
End If
End With
For Each rng3 In .Range("A1:b100" & LR).Find("CONSIGNACOES INDIVIDUALIZADAS")
With Plan1
' CNPJ :
If rng3.Value2 Like "CNPJ :*" Then
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
.Range("A" & LR1).Value = VBA.Trim(VBA.Mid(rng3.Value2, 7, 19))
End If
' CEP :
If rng3.Value2 Like "*CONSIGNACOES INDIVIDUALIZADAS*" Then
.Range("F5,f5" & LR1).Value = VBA.Trim(VBA.Mid(rng3.Value2, VBA.InStr(rng3.Value2, "CONSIGNACOES INDIVIDUALIZADAS ") + 0, 32))
End If
If rng3.Value2 Like "*CONSIGNACOES INDIVIDUALIZADAS*" Then
.Range("g5,g5" & LR1).Value = VBA.Trim(VBA.Mid(rng3.Value2, VBA.InStr(rng3.Value2, "CONSIGNACOES INDIVIDUALIZADAS ") + 29, 20))
End If
End With
For Each rng4 In .Range("A1:b1000" & LR).Find("FATURAS")
With Plan1
' CNPJ :
' CEP :
If rng4.Value2 Like "*FATURAS*" Then
' .Range(h5, h5 & LR1).Value = VBA.Trim(VBA.Mid(rng4.Value2, VBA.InStr(rng4.Value2, "FATURAS") + 0, 7))
.Range("h5,h5" & LR1).Value = VBA.Trim(VBA.Mid(rng4.Value2, VBA.InStr(rng4.Value2, "FATURAS") + 0, 7))
End If
If rng4.Value2 Like "*FATURAS*" Then
.Range("i5,i5" & LR1).Value = VBA.Trim(VBA.Mid(rng4.Value2, VBA.InStr(rng4.Value2, "FATURAS") + 8, 20))
End If
End With
Plan2.Activate
For Each rng5 In .Range("A1:b1000" & LR).Find("LIQUIDO")
With Plan1
' CEP :
If rng5.Value2 Like "*LIQUIDO*" Then
.Range("j5,j5" & LR1).Value = VBA.Trim(VBA.Mid(rng5.Value2, VBA.InStr(rng5.Value2, "LIQUIDO") + 0, 8))
End If
If rng5.Value2 Like "*LIQUIDO*" Then
.Range("k5,k5" & LR1).Value = VBA.Trim(VBA.Mid(rng5.Value2, VBA.InStr(rng5.Value2, "LIQUIDO") + 8, 28))
End If
End With
Next 'quinto
Next ' quarto
Next 'terceiro
Next 'segundo
Next 'primeiro
' .Cells.Clear
.Range("A73:A83").ClearContents
End With
'-----Pensionista
Plan1.Activate
With Plan2
LR = .Cells(.Rows.Count, 1).End(xlUp).Row
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
For Each rng In .Range("A1:b1000" & LR).Find("FATURAS")
With Plan1
' CNPJ :
If rng.Value2 Like "CNPJ :*" Then
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
.Range("A" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, 7, 19))
End If
' CEP :
If rng.Value2 Like "*FATURAS*" Then
.Range("h8,h8" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, VBA.InStr(rng.Value2, "FATURAS") + 0, 8))
End If
If rng.Value2 Like "*FATURAS*" Then
.Range("i8,i8" & LR1).Value = VBA.Trim(VBA.Mid(rng.Value2, VBA.InStr(rng.Value2, "FATURAS") + 8, 15))
End If
End With
.Range("A93:A104").ClearContents
For Each rng2 In .Range("A1:a1000" & LR).Find("LIQUIDO")
With Plan1
' CNPJ :
If rng.Value2 Like "CNPJ :*" Then
LR1 = Plan1.Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
.Range("j8,j8" & LR1).Value = VBA.Trim(VBA.Mid(rng2.Value2, 7, 19))
End If
' CEP :
If rng2.Value2 Like "*LIQUIDO*" Then
.Range("j8,j8" & LR1).Value = VBA.Trim(VBA.Mid(rng2.Value2, VBA.InStr(rng2.Value2, "LIQUIDO") + 0, 8))
End If
If rng2.Value2 Like "*LIQUIDO*" Then
.Range("k8,k8" & LR1).Value = VBA.Trim(VBA.Mid(rng2.Value2, VBA.InStr(rng2.Value2, "LIQUIDO") + 7, 20))
End If
End With
Next 'segundo
Next 'primeiro
.Cells.Clear
End With
Application.OnTime Now + TimeValue("00:00:04"), "FirstSteat2"
'Call ThirdSteppencio
End Sub
Private Sub FirstSteat2()
Application.OnTime Now + TimeValue("00:00:06"), "Importa_PDF_StartCADE"
End Sub
'
Postado : 25/04/2018 10:29 am